网络安全----应急响应入侵排查

系列文章目录

Web网络安全-----红蓝攻防之信息收集
Web网络安全-----Log4j高危漏洞原理及修复
Shell分类详解(图形界面+命令行式)
Linux安全----应急溯源常用命令
记一次实战成功溯源反制getshell


文章目录


一、应急响应概述

事件级别

1、特别重大事件
  红色预警、一级响应
2、重大事件
   橙色预警、二级响应
3、较大事件
   黄色预警、三级响应
4、一般事件
   蓝色预警、四级响应

事件类型

1、应用安全
   WebShell、网页篡改、网页挂马…
2、系统安全
   勒索病毒、挖矿木马、远控后门…
3、网络安全
   DDoS攻击、ARP攻击、流量劫持…
4、数据安全
  如数据泄露、损坏、加密…

应急响应模型

1、准备阶段(Preparation)
  • 应急团队建设
  • 应急方案制定
  • 渗透测试评估
  • 安全基线检查
2、检测阶段(Detection)
  • 判断事件类型
  • 判断事件级别
  • 确定应急方案
3、抑制阶段(Containment)
限制攻击/破坏波及的范围,同时也是在降低潜在的损失:
  • 阻断:IP地址、网络连接、危险主机….
  • 关闭:可疑进程、可疑服务……
  • 删除:违规账号、危险文件….
4、根除阶段(Eradication)
通过事件分析找出根除源并彻底根除,以避免被再次利用:
  • 增强:安全策略、全网监控….
  • 修复:应用漏洞、系统漏洞、补丁更新……
  • 还原:操作系统、业务系统……
5、恢复阶段(Reconvery)
把被破环的信息彻底还原到正常运作的状态:
  • 恢复业务系统
  • 恢复用户数据
  • 恢复网络通信
6、总结阶段(Follow-up)
回顾并整合应急响应过程的相关信息,进行事后分析总结和修订安全计划、政策、程序,并进行训练,以防止入侵的再次发生:
  • 事件会议总结
  • 响应报告输出
  • 响应工作优化


二、入侵排查

基本信息

  • Windows

      msinfo32
      systeminfo

  • Linux

    CPU信息
      lscpu
    操作系统信息
      uname -a
      cat /proc/version
    模块信息
      lsmod

用户信息

  • Windows

  排查恶意账户
    net user
    lusrmgr.msc(计算机管理 -> 本地用户和组 -> 用户)
    注册表查看隐藏用户:运行 中输入 regedit,打开注册表编辑器,在HKEY_LOCAL_MACHINE下的 SAM 选项
    查看计算机所有用户的 SID: wmic useraccount get name,sid

  • Linux

    查看用户信息
      cat /etc/passwd

   分析超级权限账户
     awk -F: '$3==0{print $1}' /etc/passwd
   查看可登录的账户
     cat /etc/passwd | grep 'bin/bash'

  查看用户错误的登录信息
    lastb
  查看所有用户最后的登录时间
    lastlog
  查看用户最近登录信息
    last
  查看当前用户登录系统情况
    who

启动项

  • Windows
    通过“系统配置”对话框查看
      msconfig
    详细信息
      HKEY_CLASSES_ROOT (HKCR)
    登陆用户的配置信息
      HKEY_CURRENT_USER(HKCU)
    计算机硬件特定的信息
      HKEY_LOCAL_MACHINE(HKLM)
    所有用户配置文件的配置信息
      HKEY_USERS(HKU)
    存储有关系统当前配置的信息
      HKEY_CURRENT_CONFIG(HCU)

  • Linux
    查看init.d 文件加下的rc.local 文件内容
      cat /etc/init.d/rc.local
    查看rc.local 文件的内容
      cat /etc/rc.local
    查看init.d 文件夹下所有文件的详细信息
      ls -alt /etc/init.d

计划任务

  • Windows
    视图
      计算机管理 -> 系统工具 -> 任务计划程序 -> 任务计划程序库
    在powershell下
      Get-ScheduledTask
    命令行
      schtasks

  • Linux

    命令输入
      crontab -l
      crontab -u root -l
    查看 /etc 目录下的任务计划文件
      ls /etc/cron*

系统进程

  • Windows
    通过任务管理器查看
    查看进程与服务对应情况
      tasklist /svc
    对于某些DLL 恶意进程
      tasklist /m
    查看调用 ntdll.dll 模块的进程
      tasklist /m ntdll.dll
      (ntdll.dll是Windows操作系统中的一个核心组件,它将不同的功能模块集成在一起,包括核心的系统API、内存管理、异常处理、进程和线程管理等)
    可以通 /fi 进行过滤
      tasklist /svc /fi “PID eq 2820” (显示PID等于2820的正在运行的服务进程。)
    查看当前网络连接
      netstat -ano | findstr “ESTABLISHED”
    通过netstat 定位出PID,通过tasklist 命令进行程序定位
      wmic process get name,executablepath,processid|findstr pid(进程号)
      wmic process where processid=602444 get processid,executablepath,name
    快速定位到端口对应的程序(管理员权限)
      netstat -anb
    使用Powershell进行排查
      get-wmiobject win32_process | select name,processid,parentprocessid,path
      (用于获取Windows系统中所有进程的相关信息,并选择显示进程的名称(name)、进程ID(processid)、父进程ID(parentprocessid)和路径(path)。)
    以csv格式显示数据
      wmic process list full /format:csv
    wmic查询
      • wmic process get name,parentprocessid,processid /format:csv
      • wmic process get executablepath,processid /format:csv
      • wmic process where processid=2020 get executablepath,processid /format:csv
      • wmic process where name=“httpd.exe” get executablepath,processid /format:csv

  • Linux
    显示所有的网络连接和监听端口
      netstat -anptl
    查看3364进程的可执行程序
      ls -alt /proc/3364
    查看进程打开的文件
      lsof -p 3364
    杀掉进程
      kill -9 3364
    删除可疑木马
      rm -rf 木马文件
    查看属性
      lsattr 文件名
    移除 i 属性
      chattr -i 文件名
    进程实时情况
      top

服务排查

  • Windows
    视图
      打开”运行“,输入 services.msc 命令,可打开 “服务”窗口,查看所有服务项,包括服务名、描述、状态等

  • Linux
    查看系统运行服务
      chkconfig --list
    所有服务的状态
      service --status-all

文件痕迹

1.敏感目录

  • Windows
    temp(tmp)相关目录
    浏览器的历史记录,下载文件和cookie信息
    查看用户Recent文件
      C:\Users\Administrator\Recent、C:\Users\用户名\Recent,或者通过“运行”-> 输入“ recent ”
    预读取文件夹查看
      Prefetch文件夹的位置为 “%SystemRoot%\Prefetch\”,可以在”运行“对话框中输入prefetch 或者 %SystemRoot%\Prefetch\,或者打开:C:\WINDOWS\prefetch

  • Linux
    临时文件夹 /tmp
    命令目录 /usr/bin、/usr/sbin等
    存储SSH连接信息和配置文件的目录 .ssh
    SSH服务器配置文件和密钥存储目录 /etc/ssh

2.时间点

对文件的创建时间、修改时间、访问时间进行排查
对于人工入侵的应急响应事件,有时攻击者会为了掩饰入侵行为,对文档的相应时间进行修改,以规避一些排查策略,比如攻击者可能通过”菜刀“这类工具修改时间,因此,如果文件的相关时间存在明显逻辑问题,就需要重点排查,很可能是恶意文件(比如创建时间为2021,修改时间为2018)

  • Windows

    显示对 2021/11/27 后的创建的txt文件进行搜索
      forfiles /m *.txt /d +2021/11/27 /s /p c:\ /c “cmd /c echo @path @fdate @ftime” 2>null
    显示 2021//11/1 之后pptx名字包含”网络“的文件
      forfiles /m *网络*.pptx /p f:\ /d +2021/11/1 /s /c “cmd /c echo @path @fdate @ftime” 2>null
    显示 2021//11/27 后所有访问过的文件
      forfiles /m *.* /p f:\ /d +2021/11/27 /s /c “cmd /c echo @path @fdate @ftime” 2>null

  • Linux
    查找块设备、目录、字符设备、管道、符号链接、普通文件
      find -type b/d/c/p/l/f
    按文件更改时间来查找文件,-n指 n天以内,+n指 n天前
      find -mtime -n +n
    按文件访问时间来查找
      find -atime -n +n
    按照文件创建时间来查找
      find -ctime -n +n
    查找在最近1天内被修改过的名字为.txt的文件
      find / -ctime 0 -name “.txt"
    查找3天内新增的txt文件
      find / -ctime -3 -name “
    .txt”
    查看当前目录下前10个文件或文件夹的详细信息。
      ls -alt | head -n 10
    对文件的创建时间、修改时间、访问时间进行排查
      stat 文件名

3.Webshell

  • Windows
    D盾
    HwsKill
    webshellKill

  • Linux

    特殊权限文件查找
      find /tmp -perm 777
    查找/var/www下所有php文件

    find /var/www/ -name "*.php"

正则查找带有POST变量的 (/path/to/directory替换为要搜索的目录路径)

grep -rnE '$_POST\[[\'\"][a-zA-Z0-9_]+[\'\"]\]' /path/to/directory 

对系统命令进行排查 (列出 /bin/ 目录下的所有文件和文件夹,并显示它们的详细信息)
  ls -alht /bin/
工具
  chkrootkit
  rkhunter
排查SUID程序
('-uid 0’表示只查找那些属于root用户(用户ID为0)的文件。'2>/dev/null’是将错误输出重定向到空设备文件,这样就不会在终端显示任何错误信息。)
  find / -type f -perm -04000 -ls -uid 0 2>/dev/null

日志分析(Windows)

Windos2003之前日志位置

• 系统日志:C:\Windows\System32\config\SysEvent.evt
• 安全性日志: C:\Windows\System32\config\SecEvent.evt
• 应用程序日志: C:\Windows\System32\config\AppEvnet.evt

Windos2008以后日志位置

• 系统日志为 C:\Windows\System32\winevt\Logs\System.evtx
• 安全性日志为 C:\Windows\System32\winevt\Logs\Security.evtx
• 应用程序日志为 C:\Windows\System32\winevt\Logs\Application.evtx
• 其他日志 在应急响应中经常也会用到 PowerShell 日志
  Get-EventLog application | Export-Clixml –Path C:\PowerShell\applog.xml –Depth 2
  (这段脚本将把应用日志的信息保存到C:\PowerShell\applog.xml文件之中。)
• 或者打开”运行“,输入 eventvwr.msc

日志常用事件ID

在这里插入图片描述

常用启动事件相关日志事件ID

在这里插入图片描述

日志被清除相关日志事件ID

在这里插入图片描述

powershell日志分析

1.只获取传统事件日志
在这里插入图片描述  查看所有日志列表:Get-EventLog -list

2.从传统事件日志和新windows 事件日志技术生成的事件日志中获取事件
在这里插入图片描述  查看所有日志列表:Get-WinEvent -ListLog *

获取安全性日志下事件ID为4625(失败登录)的所有日志信息
  get-eventlog security -instanceid 4625
(需要有 Windows Vista、Windows Server 2008 或更高版本的 Windows 系统,以及 Microsoft .NET Framework 3.5 及以上的版本。)

日志工具

• FullEventLogView:是一款轻量级的日志检索工具,是绿色版、免安装的,检索速度比windows系统自带工具要快,展示效果好
• Event Log Explorer:检测系统安全的软件,可查看、监视和分析事件记录
• Log Parser :微软公司推出的日志分析工具,功能强大,使用简单
• 比如: LogParser.exe -i:EVT -o:DATAGRID “SELECT*FROM c:\Security.evtx where EventID=4624”

日志分析(Linux)

存放目录

 /var/log/

记录登录进入、退出、数据交换、关机和重启,即last,是一个二进制文件,可以使用last查看

 /var/log/wtmp

记录与定时任务相关的日志信息

 /var/log/cron

记录系统启动后的信息和错误日志

 /var/log/messages

记录Apache的访问日志

 /var/log/apache2/access.log

记录系统授权信息,包括用户登录和使用的权限机制等

 /var/log/auth.log

记录所有等级用户信息的日志

 /var/log/userlog

记录linux FTP的日志

 /var/log/xferlog(vsftpd.log)

记录登录的用户,可以使用命令lastlog查看

 /var/log/lastlog

记录大多数应用输入的账户和密码,以及登录成功与否

 /var/log/secure

记录登录系统不成功的账号信息

 /var/log/faillog

查看邮件相关记录文件

 ls -alt /var/spool/mail

可发现对80端口的攻击行为(当web访问异常时,及时向当前系统配置的邮箱地址发送报警邮件)

 cat /var/spool/mail/root

对linux系统日志分析主要使用 grep sed sort awk 等命令

查看多少行的日志文件

 • tail -n 10 test.log: 查看最后10行日志
 • tail -n +10 test.log: 查看10之后的所有日志
 • head -n 10 test.log: 查询头10行的日志
 • head -n -10 test.log: 查询除了最后10条的所有日志

*.log 日志文件中统计独立IP地址个数的命令

 • awk ‘{print $1}’ test.log | sort | uniq | wc -l
 • awk ‘{print $1}’ /access.log | sort | uni1 -c | sort -nr| head -10

查找指定时间段日志的命令

 • sed -n ‘/2020-12-17 16:17:20/,/2020-12-17 16:17:36/p’ test.log
 • grep ‘2020-12-17 16:17:20’ test.log

日志分析排查(其它日志)

IIS日志的位置

 • %SystemDrive%\inetpub\logs\LogsFiles
 • %SystemRoot%\System32\LogFiles\W3SVC1
 • %SystemDrive%\inetpub\logs\LogFiles\W3SVC1
 • %SystemDrive%\Windows\System32\LogFiles\HTTPERR

Apache日志的位置

 • /var/log/httpd/access.log
 • /var/log/apache/access.log
 • /var/log/apache2/access.log
 • /var/log/httpd-access.log

Nginx日志位置

 默认在 /usr/local/nginx/logs 目录下
 accessl.log 代表访问日志,
 error.log 代表错误日志,
 若没有在默认路径下,则可以到 nginx.conf 配置文件中查找

Tomcat日志的位置

 默认在 TOMCAT_HOME/logs/ 目录下
 有 catalina.out、catalina.YYYY-MM-DD.log 、localhost.YYYY-MM-DD.log、 localhost_access_log.YYYY-MM-DD.txt、hostm-anager.YYYY-MM-DD.log、manager.YYYY-MM-DD.log 等几类日志

Weblogic日志的位置

• 在默认情况下,WebLogic 有三种日志,分别是 access log 、 server log 和 domain log
• access log 的位置是
  $MW_HOME\user_projects\domains\server\logs\access.log
• server log 的位置是
  $MW_HOME\user_projects\domains<domain_name>\server<server_name>\logs<server_name>.log
• domain log 的位置是
  $MW_HOME\user_projects\domains<domain_name>\server、<adminserver_name>\logs<domain_name>.log

数据库日志

• Oracle数据库查看方法如下:使用 select * from v$logfile 命令,可查询日志路径,在默认情况下,日志文件记录下 O R A C L E / r d b m s / l o g 。使用 s e l e c t ∗ f r o m v ORACLE/rdbms/log 。 使用 select * from v ORACLE/rdbms/log。使用selectfromvsql 命令,查询之前用过的SQL
• MySQL 数据库查看方法如下:使用 show variables like ‘%log_%’ 命令,可查看是否启用日志,如果日志已开启,则默认路径为 /var/log/mysql ,使用 show variables like ‘%general%’ 命令,可查看日志位置
• MsSQL 数据库查看方法如下:一般无法直接查看,需要登录到 SQL Server Management Studio ,在 “管理-SQL Server 日志” 中进行查看

内存分析

内存获取的方法如下几种:

• 基于用户模式程序的内存获取
• 基于内核模式程序的内存获取
• 基于系统崩溃转储的内存获取
• 基于操作系统注入的内存获取
• 基于系统休眠文件的内存获取
• 基于虚拟化快照的内存获取
• 基于系统冷启动的内存获取
• 基于硬件的内存获取

常用方法

1.基于内核模式程序的内存获取:
  这种获取方法一般需要借助工具来完成,常用的提取工具有 Dumpit、Redline、RAM Capturer 、FTK Imager 等
2.基于系统崩溃转储的内存获取:
  打开“系统属性”对话框,选择“高级” 选项卡,单击“启动和故障恢复” 中的 “设置” 按钮,打开 “启动和故障恢复” 对话框,选择 ”核心内存转储“ 并找到转储文件进行获取
3. 基于虚拟化快照的内存获取:
  这种获取方法是通过 VMware Workstation、ESXI 等虚拟化软件实现的,VMware Workstation 在生成快照时会自动生成虚拟内存文件

工具

Redline

在获得内存文件后,可以使用 Redline 进行导入分析,其主要收集在主机上运行的有关进行信息、内存中的驱动程序,以及其他数据,如元数据、注册表数据库、任务、服务、网络信息和Internet 历史记录等,最终生成报告

Volatility

  Volatility 是一个开源的内存取证工具,可以分析入侵攻击痕迹,包括网络连接、进程、服务、驱动模块、DLL、Handles、进程注入、cmd历史命令、IE浏览器历史记录、启动项、用户、shimcache、userassist、部分rootkit 隐藏文件、cmdliner 等
  netscan : 对内存镜像中的网络连接情况进行排查
  psxview : 查看内存镜像中带有隐藏进程的所有进程列表,使用psxview 命令排查隐藏进程
  malfind : 查找隐藏或注入的代码、DLL
  cmdscan : 可提取执行的相关命令记录
  procdump : 可提取进程文件,可通过指定进程的PID 的值来对特定的进程文件进行提取,比如: procdump -p 3203 -D (用来提取进程文件)

流量分析

• wireshark
• PCHunter
• Process
• Monitor

可以对特定 IP 地址进行过滤

• ip.addr == ip

可以对指定源IP地址进行过滤

• ip.src == ip

可对端口号进行过滤

• tcp.port == 端口号
• udp.port == 端口号

可对数据包中的关键字进行检索

• tcp contains strings

威胁情报

各大厂商的威胁情报中心有很多,详细可见:
Web网络安全-----红蓝攻防之信息收集(web、安卓…)


总结

`一屋不扫何以扫天下?

猜你喜欢

转载自blog.csdn.net/qq_51690690/article/details/132742085