应急响应之入侵排查(下)

news/2025/1/12 22:46:06/

一.进程排查

1.Windows
  1. 任务管理器查看

    • 在 Windows 系统中,可通过任务管理器查看进程信息。操作步骤为:在任务管理器界面,于 “查看” 选项中选择 “选择列”,随后添加 “映像路径名称” 和 “命令行”,以此查看更多进程详情。
  2. 使用 tasklist 命令

    1. 查看进程与服务对应情况:使用命令 tasklist /svc
    2. 针对某些 DLL 恶意进程:执行 tasklist /m
    3. 查看调用特定模块进程:若要查看调用 ntdll.dll
    4. 利用 /fi 进行过滤:如 tasklist /svc/fi "PID eq 2820"
  3. 通过 netstat 进行排查

    1. 查看当前网络连接:输入 netstat -ano | findstr "ESTABLISHED"

    2. 联合定位程序:先通过 “netstat” 定位出 PID,再借助 “tasklist” 命令进行程序定位,示例:

      • “wmic process where name="firefox.exe" get processid,executablepath,name”
      • “wmic process where processid=602444 get processid,executablepath,name”
    1. 快速定位端口对应程序(需管理员权限):netstat -anb
  4. 使用 Powershell 进行排查

    • 进入 Powershell 后,输入 get-wmiobject win32_process | select name,processid,parentprocessid,path​ ,可获取进程的相关详细信息。


  5. wmic 查询

    1. 以 csv 格式显示数据:

      • wmic process list full /format:csv
      • wmic process get name,parentprocessid,processid /format:csv
      • wmic process get executablepath,processid /format:csv
    1. 根据进程 ID 查询:wmic process where processid=2020 get executablepath,processid /format:csv
    2. 根据进程名称查询:wmic process where name="httpd.exe" get executablepath,processid /format:csv
2.Linux
  1. 查看进程:netstat -anptl

  2. 查看特定进程可执行程序及打开文件:

    • 先通过 “netstat” 查看到如 “3364” 进程,再执行 “ls -alt /proc/3364” 查看其可执行程序。
    • 查看进程打开的文件则使用 “lsof -p 3364”。
  1. 处理恶意进程:

    • 若判断为恶意进程,可杀掉进程:kill -9 3364
    • 接着删除可疑木马,执行 rm -rf 木马文件
  1. 处理文件属性问题:

    • 若无法删除文件,可能文件被加上 “i” 属性,此时先使用 lsattr 文件名​ 查看属性。
    • 再用 chattr -i 文件名​ 移除 “i” 属性,之后便可删除文件。
  1. 查杀守护进程:若进程无法删除,可疑先查杀守护进程,然后再尝试删除。
  2. 查看资源占用率高的进程:通过 “top” 命令查看相关资源占用率比较高的进程。

二.服务排查

1.Windows
  • 在 Windows 下,按 Win + R 调出 “运行” 对话框,输入 “services.msc” 回车,就能打开 “服务” 窗口,查看服务名、描述、状态等信息。
2.Linux
  1. 基于 Red Hat 系

    • 对 Red Hat 系列 Linux 系统,用 chkconfig --list​ 可查看系统运行服务,但它有系统适配性,仅适用于 Red Hat 系及其兼容系统。
  2. Debian 系(如 Ubuntu)及通用方式

    • 在 Debian 系(如 Ubuntu)中,因系统特性无 “chkconfig” 命令,可用 service --status-all​ 查看所有服务即时状态。


三.文件痕迹排查

确定应急响应事件时间点后,对该时间点前后的文件以及带有特定特征的恶意软件进行排查。特征包括代码关键字、关键函数、文件权限特征等。

1.敏感目录
  1. Windows:

    • 检查各个盘下的 temp(tmp)相关目录,恶意程序释放子体常投放于此,可查看临时目录下是否存在异常文件。对于人工入侵事件,需重点排查浏览器历史记录、下载文件和 cookie 信息。

      • 查看用户 Recent 文件:Recent 文件存储最近运行文件快捷方式,可分析排查可疑文件,存储位置为 C:\Users\Administrator\Recent、C:\Users\ 用户名 \Recent,或通过 “运行” 输入 “recent”。

      • 预读取文件夹查看:Prefetch 是预读取文件夹,存放系统访问过文件的预读取信息,扩展名为 pf,可加快系统启动进程。Windows 7 可保存最近 128 个可执行文件信息,Windows 8 和 Windows 10 可记录最近 1024 个可执行文件,位置为 % SystemRoot%\Prefetch\​,可在 “运行” 对话框输入 prefetch​ 或 % SystemRoot%\Prefetch\​,或打开 C:\Windows\Prefetch​。


  2. linux
    常见敏感目录有 /tmp​ 目录和命令目录 /usr/bin​、/usr/sbin​ 等,常作为恶意软件下载或文件被替换目录;~/.ssh​ 以及 /etc/ssh​ 也常作为后门配置路径,需重点排查。

2.时间点

介绍:确认应急响应事件时间点,排查该时间点前后文件变动情况以缩小范围。

  1. Windows

    通过列出攻击日期内新增的文件来发现相关恶意软件。在 Windows 系统中,使用 forfiles​ 命令查找相应文件。

    • 命令示例:

      • 显示对 2024/1/17 后的创建的 txt 文件进行搜索:forfiles /m *.txt /d +2024/1/17 /s /p c:\ /c "cmd /c echo @path @fdate @ftime" 2>null​
      • 显示 2024/1/17 之后 pptx 名字包含” 网络 “的文件:forfiles /m *网络*.pptx /p f:\ /d +2024/1/17 /s /c "cmd /c echo @path @fdate @ftime" 2>null​
      • 显示 2024/1/17 后所有访问过的文件:forfiles /m *.* /p f:\ /d +2024/1/17 /s /c "cmd /c echo @path @fdate @ftime" 2>null​
      • 注:2>null​ 表示将错误输出重定向到空设备,即不输出错误信息。
    • 排查注意事项:对文件的创建时间、修改时间、访问时间进行排查。对于人工入侵的应急响应事件,攻击者可能会使用如 “菜刀” 这类工具修改文档时间以掩饰入侵行为、规避排查策略。若文件相关时间存在明显逻辑问题(如创建时间为 2024,修改时间为 2022),则需重点排查,很可能是恶意文件。

  2. Linux

    通过列出攻击日期内变动的文件来发现相关恶意文件,使用 find​ 命令对某一时间内增加的文件进行查找。

    • ​find​ 命令参数说明:

      • ​find​:在指定的目录下查找文件。
      • ​-type b/d/c/p/l/f​:查找块设备、目录、字符设备、管道、符号链接、普通文件。
      • ​-mtime -n +n​:按文件更改时间来查找文件,-n​ 指 n 天以内,+n​ 指 n 天前。
      • ​-atime -n +n​:按文件访问时间来查找。
      • ​-ctime -n +n​:按照文件创建时间来查找。
    • 命令示例:

      • 查找一天内新增的 txt 文件:find / -ctime 0 -name ".*txt"​
      • 查找 3 天内新增的 txt 文件:find / -ctime -3 -name "*.txt"​
      • 查看目录按照时间排序:ls -alt | head -n 10​(查看前 10 条的内容)
    • 时间排查要点:对文件的创建时间、修改时间、访问时间进行排查。使用 stat​ 命令可以查看文件详细信息,若修改时间距离应急响应事件日期接近且有线性关联,说明文件有可能被篡改。

  3. Linux特殊文件

    • 特殊权限文件查找:例如,查找 /tmp​ 目录下权限为 777 的文件:find /tmp -perm 777​
    • webshell 查找:webshell 排查可以通过文件、流量、日志分析。基于文件的命名特征和内容特征操作相对较高。例如查找 /var/www​ 下所有 php 文件:find /var/www/ -name "*.php"​;进一步对找到的 php 文件进行特定内容搜索:find /var/www/ -name "*.php" | xargs egrep "assert|eval|base64_decode|shell_exec|passthru|(\$\_\POST\["​
3.WebShell

WebShell(网站入侵脚本)在通过上述时间点相关文件筛选方法之后,还可以使用 D 盾、HwsKill、webshellKill 等工具对目录下的文件进行规则查询。

四.日志分析

1.Windows日志分析
  1. 日志文件位置

    • Windows XP/windows server 2003:

      • 系统日志:C:\Windows\System32\config\SysEvent.evt
      • 安全性日志:C:\Windows\System32\config\SecEvent.evt
      • 应用程序日志:C:\Windows\System32\config\AppEvnet.evt
    • Windows vista/windows 7/windows8/windows10/Windows server2008 之后:

      • 系统日志为 C:\Windows\System32\winevt\Logs\System.evtx
      • 安全性日志为 C:\Windows\System32\winevt\Logs\Security.evtx
      • 应用程序日志为 C:\Windows\System32\winevt\Logs\Application.evtx
      • 或者打开 “运行”,输入 eventvwr.msc
  2. 不同类型日志介绍

    • 系统日志:指 Windows 系统中的各个组件在运行中产生的各种事件,可分为系统中各种驱动程序、操作系统的多种组件及应用软件在运行中出现重大问题等情况,如重要数据丢失、错误及系统崩溃行为等。
    • 安全性日志:主要记录各种与安全相关的事件,包括各种登录与退出系统的成功或不成功信息,以及对系统中各种重要资源进行的操作。
    • 应用程序日志:主要记录各种应用程序产生的各类事件,如 SQL server 数据库程序在受到暴力破解攻击时会有相关记录及详细信息。
    • 其他日志:在应急响应中经常也会用到 PowerShell 日志。
  3. 日志分析方法

    • 通过内置的日志筛选器进行分析:使用日志筛选器可以对记录时间、事件级别、任务类别、关键字等信息进行筛选。
    • 使用 Powershell 对日志进行分析:在使用 powershell 进行日志分析时,需要管理员权限。常用命令有 Get-EventLog​(只获取传统事件日志)、Get-WinEvent​(从传统事件日志和新 windows 事件日志技术生成的事件日志中获取事件,还会获取 windows 事件跟踪(ETW)生成的日志文件中的事件,需要 windows vista/windows server2008 及更高版本的 windows 系统,还需要.NET Framework 3.5 及以上版本)。例如获取安全性日志下事件 ID 为 4624(登录成功)的所有日志信息:get-eventlog security -instanceid 4624​;get-winevent -filterhashtable @{logname='security';id='4624'}​。
2.Linux日志分析
  1. 日志存放位置

    Linux 系统中日志一般存放在目录 /var/log/​ 下,具体功能如下:

    • ​/var/log/wtmp​:记录登录进入、退出、数据交换、关机和重启,即 last,是一个二进制文件,可以使用 last 查看。
    • ​/var/log/cron​:记录与定时任务相关的日志信息。
    • ​/var/log/messages​:记录系统启动后的信息和错误日志,使用 cat /var/log/messages​ 查看。
    • ​/var/log/apache2/access.log​:记录 Apache 的访问日志。
    • ​/var/log/auth.log​:记录系统授权信息,包括用户登录和使用的权限机制等。
    • ​/var/log/userlog​:记录所有等级用户信息的日志。
    • ​/var/log/xferlog(vsftpd.log)​:记录 linux FTP 的日志。
    • ​/var/log/lastlog​:记录登录的用户,可以使用命令 lastlog 查看。
    • ​/var/log/secure​:记录大多数应用输入的账户和密码,以及登录成功与否。
    • ​/var/log/faillog​:记录登录系统不成功的账号信息。
    • ​ls -alt /var/spool/mail​:查看邮件相关记录文件。
    • ​cat /var/spool/mail/root​:可发现对 80 端口的攻击行为(当 web 访问异常时,及时向当前系统配置的邮箱地址发送报警邮件)。
  2. 日志分析方法

    对 Linux 系统日志分析主要使用 grep​、sed​、sort​、awk​ 等命令。查看日志的方法如下:

    • 查看最后 10 行日志:tail -n 10 test.log​。
    • 查看 10 之后的所有日志:tail -n +10 test.log​。
    • 查询头 10 行的日志:head -n 10 test.log​。
    • 查询除了最后 10 条的所有日志:head -n -10 test.log​。
3.其他日志
  1. IIS日志位置

    • %SystemDrive%\inetpub\logs\LogsFiles
    • %SystemRoot%\System32\LogFiles\W3SVC1
    • %SystemDrive%\inetpub\logs\LogFiles\W3SVC1
    • %SystemDrive%\Windows\System32\LogFiles\HTTPERR
  2. Apache 日志位置

    • /var/log/httpd/access.log
    • /var/log/apache/access.log
    • /var/log/apache2/access.log
    • /var/log/httpd-access.log
  3. Nginx日志位置

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

    • 默认在 TOMCAT_HOME/logs/​ 目录下,有 catalina.out​、catalina.YYYY-MM-DD.log​、localhost.YYYY-MM-DD.log​、localhost_access_log.YYYY-MM-DD.txt​、hostmanager.YYYY-MM-DD.log​、manager.YYYY-MM-DD.log​ 等几类日志。
  5. Weblogic日志位置

    在默认情况下,WebLogic 有三种日志,分别是 access log、server log 和 domain log。

    • access log 的位置:$MW_HOME\user_projects\domains<domain_name>\server<server_name>\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
  6. 数据库日志

    • Oracle 数据库:使用 select * from v$logfile​ 命令,可查询日志路径,在默认情况下,日志文件记录在 $ORACLE/rdbms/log​。使用 select * from v$sql​ 命令,查询之前用过的 SQL。
    • MySQL 数据库:使用 show variables like '%log_%'​ 命令,可查看是否启用日志,如果日志已开启,则默认路径为 /var/log/mysql​,使用 show variables like '%general%'​ 命令,可查看日志位置。
    • MsSQL 数据库:一般无法直接查看,需要登录到 SQL Server Management Studio,在 “管理 - SQL Server 日志” 中进行查看。

http://www.ppmy.cn/news/1562624.html

相关文章

探索 Oracle 数据库:核心概念与实践指南

Oracle 数据库是业界领先的关系型数据库管理系统 (RDBMS)&#xff0c;广泛应用于企业级应用和大型数据处理。本文将深入探讨 Oracle 数据库的核心概念、常用功能以及最佳实践&#xff0c;帮助你更好地理解和使用 Oracle 数据库。 1. Oracle 数据库的核心概念 1.1 体系结构 O…

Android中Activity

一、AndroidManifest中的<activity>标签 <activity>标签在AndroidManifest.xml文件中用于定义和配置应用中的每一个Activity。Activity是Android应用的基本构建块之一&#xff0c;主要负责展示用户界面&#xff0c;并处理用户与之的交互。每个在应用中显示给用户的…

抖音生活服务举办直营服务商年度峰会 服务商支付交易额同比涨85%

1月7日&#xff0c;抖音生活服务在海南三亚举办了“服务无界&#xff0c;卓越领航”直营服务商年度峰会&#xff0c;公布了过去一年在服务商生态建设的举措与成果&#xff0c;并分享了新一年平台在战略经营方向、产品功能升级以及营销拓展等方面的规划布局。同时&#xff0c;为…

spring task使用

Spring Task 简介 Spring Task 是 Spring 框架原生自带的任务调度框架&#xff0c;它犹如一把瑞士军刀&#xff0c;为开发者提供了丰富多样的功能&#xff0c;助力轻松创建和管理定时任务。相较于其他一些第三方任务调度框架&#xff0c;Spring Task 最大的优势在于其与 Sprin…

宝塔安装教程,bt怎么安装 linux

Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 37a09b35 Ubuntu/Deepin安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo b…

Redis 如何解决大 key 问题

前言 嗨&#x1f44b;&#xff0c;大家好&#xff0c;我是雪荷。做为一个后端开发&#xff0c;Redis 是我们经常接触到的一个非关系行数据库。其对我们系统开发和优化有着举足轻重的作用&#xff0c;但是随着业务和用户迅速增长&#xff0c;也会滋生许多的问题&#xff0c;而大…

vscode 无法使用npm, cmd命令行窗口可以正常执行

解决方法&#xff1a; 执行命令获得命令的位置 get-command npm 得到如下 然后删除或者修改 npm.ps1文件 让其不能使用就行。然后重启vscode即可。 pnpm 同理即可 另外加速源 国内镜像源&#xff08;淘宝&#xff09;&#xff1a; npm config set registry https://regist…

Pulsar客户端如何控制内存使用

Pulsar客户端如何控制内存使用 一、使用场景 在实际应用中&#xff0c;Pulsar客户端的内存使用控制是一个重要的性能优化点。假设有一个搜索类业务需要记录用户搜索请求&#xff0c;以便后续分析搜索热点和优化搜索效果。以下是一个简化的代码示例&#xff1a; PulsarClient…