本文涵盖计划任务、自启动持久化、系统日志、审计监控、可疑用户、进程端口排查、安全加固等实战内容,兼顾攻击者视角与防守者视角,适合网络安全学习与服务器日常巡检。

一、计划任务(定时执行与排查)

计划任务是攻击者常用的定时上线、定时投递 payload 手段,也是服务器巡检必查项。

1. 基础命令

  • 查看当前用户计划任务crontab -l
  • 编辑计划任务crontab -e
  • 删除指定用户所有计划任务crontab -r -u root

2. crontab 时间格式

* * * * * 命令/脚本路径依次代表:分 / 时 / 日 / 月 / 周

常用示例:

  • * * * * *:每分钟执行
  • 5 * * * *:每小时第 5 分钟执行
  • */5 * * * *:每 5 分钟执行
  • 0 3 * * *:每天凌晨 3 点执行
  • 0 12 * * 6:每周六中午 12 点执行

二、启动项与自启动服务(持久化核心)

1. 传统启动项

查看系统初始化脚本:ls /etc/init.d/

2. systemd 服务(现代 Linux 主流持久化)

服务配置文件目录:ls /etc/systemd/system

典型服务配置(test.service)

[Unit]
Description=test
After=network.target

[Service]
Type=simple
ExecStart=/shell.elf
Restart=always

[Install]
WantedBy=multi-user.target
  • ExecStart:可执行文件路径(攻击者常写木马)
  • Restart=always:崩溃自动重启
  • WantedBy=multi-user.target:多用户模式开机自启
服务管理命令

systemctl daemon-reload      # 重新加载配置
systemctl start test.service # 启动服务
systemctl enable test.service # 开机自启
systemctl status test.service # 查看状态

3. 三种持久化对比

  • 计划任务:定时执行 payload
  • 启动项:开机一次执行,崩溃无法恢复
  • 系统服务:最强持久化,可自动重启、长期驻留

三、Linux 系统日志(入侵溯源核心)

1. 传统日志文件

  • 系统运行日志:cat /var/log/syslog
  • 登录认证日志:cat /var/log/auth.log(SSH、sudo 关键日志)

2. journalctl 现代日志工具

  • 查看当天所有日志(需管理员)sudo journalctl
  • 查看 SSH 服务日志sudo journalctl -u ssh
  • 按时间段筛选sudo journalctl --since "2024-06-20 18:00:00" --until "2024-06-20 20:00:00"

3. SSH 登录安全审计(高频实战)

# 查看最新10条登录失败
sudo journalctl -u ssh | grep 'Failed password' | tail

# 查看最新10条登录成功
sudo journalctl -u ssh | grep 'Accepted password' | tail

# 实时监控 SSH 登录
sudo journalctl -u ssh -f

# 统计攻击IP失败次数
sudo journalctl -u ssh | grep 'Failed password' | awk '{print $11}' | sort | uniq -c | sort -nr

四、审计监控工具 auditd(加强版日志)

在系统自带日志基础上增加细粒度行为监控,如文件读写、命令执行、用户增删。

1. 安装与启动

sudo apt update
sudo apt install -y auditd audispd-plugins
sudo systemctl status auditd

配置文件路径:/etc/audit/auditd.conf

2. 添加审计规则

格式:auditctl -w 路径/文件 -p 权限 -k 关键词

示例:监控 useradd(创建用户)命令

auditctl -w /usr/sbin/useradd -p rwx -k useradd_exec
  • -w:监控目标
  • -p rwx:监控读、写、执行行为
  • -k:自定义关键字,方便检索

3. 查询审计日志

ausearch -k useradd_exec


五、可疑用户排查(权限劫持重点)

1. 排查超级用户(UID=0)

awk -F: '$3==0{print $1}' /etc/passwd

2. 排查 sudo 权限用户

more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL:ALL)"

3. 查看 sudo 组

cat /etc/group | grep sudo

4. 应急处置命令

pkill -KILL -u hack       # 强制用户下线
usermod -L hack           # 禁用用户
usermod -U hack           # 恢复用户
userdel hack              # 删除用户
userdel -r hack           # 删除用户及家目录

六、可疑进程分析(挖矿、木马排查)

1. 常用查看命令

 

top                # 动态实时查看
ps -ef             # 全格式查看进程
ps aux --sort -pcpu # 按CPU占用排序
ps aux --sort -pmem # 按内存占用排序

异常特征:

  • CPU 长期 100% 且名称怪异 → 大概率挖矿病毒
  • 未知外来可执行文件运行 → 木马 / 后门

2. 强制结束进程

kill -9 PID


七、端口与网络连接排查

1. netstat(传统工具)

netstat -anop -A inet  # 查看网络连接
netstat -ntu           # 查看 TCP/UDP 端口

2. ss(现代替代工具)

ss -ntap

重点关注:

  • 陌生外网 IP 连接
  • 非常规端口监听
  • 反向连接境外 IP

八、系统启动项与服务巡检

1. 快速查看开机启动项

  • Ubuntu:sysv-rc-conf --list
  • CentOS:chkconfig --list

2. 查看所有开机自启服务

systemctl list-unit-files --type=service --state=enabled

常见安全服务:

  • ufw:Ubuntu 防火墙

九、Linux 安全加固(防守必做)

1. 账户安全加固

passwd root                     # 设置强密码
nano /etc/ssh/sshd_config
# 将 PermitRootLogin yes 改为 no
systemctl restart sshd          # 禁止 root 远程 SSH

2. 防火墙加固(UFW)

ufw allow from 192.168.x.x to any port 22
ufw allow 80/tcp

仅允许指定 IP 访问关键端口,最小权限开放。

3. 系统更新与无用服务关闭

# Ubuntu 更新
apt update && apt upgrade -y && apt full-upgrade -y

# 关闭无用服务
systemctl disable 无用服务名

reboot  # 内核更新后重启生效

4. 文件权限限制

chmod 700 /root/


十、总结

  • 攻击者视角:利用计划任务、系统服务实现持久化,通过隐蔽进程、端口上线。
  • 防守者视角:巡检计划任务、自启动服务、进程端口,结合系统日志 + auditd 实现溯源,通过禁用 root 远程、防火墙、系统更新完成加固。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐