初识应急响应 (2022.3.30更新)

网友投稿 458 2022-10-04


初识应急响应 (2022.3.30更新)

Windows篇

系统信息

msinfo32 查看硬件、组件和软件环境信息等信息

在win+r或cmd中输入msinfo32

systeminfo查看主机名、系统版本、网卡信息和补丁等信息

用户信息

net user查看用户(看不到隐藏用户)

net user username查看某个用户的详细信息

lusrmgr.msc查看用户和组,可以查看隐藏用户

win+r或cmd输入lusrmgr.msc

可以自己创建一个隐藏用户用来测试

在此界面右键-新用户,输入用户名,在用户名后加上$即可

通过注册表查看用户

HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users

000001F4代表administrator账户

如果有其他用户F的值与000001F4的F的值一样,说明存在克隆账户

wmic useraccount get name,SID查看用户名和SID值

启动项

msconfig查看系统配置

win+r或cmd输入msconfig

win10开始就msconfig里看不了,需要通过任务管理器来看

通过以下注册表查看

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

也可以在cmd输入reg query "注册表位置" 来查看具体内容

任务计划

taskschd.msc 查看任务计划

win+r或cmd输入taskschd.msc

schtasks 获取任务计划信息

查看任务计划的路径、名称、状态信息

powershell下输入Get-ScheduledTask

防火墙

netsh firewall show state查看防火墙状态

win+r或cmd输入firewall.cpl打开防火墙

高级设置中可以查看出入站规则

进程排查

在任务管理器,详细信息栏处,可以看到进程的详细信息

可以右键状态栏选择需要显示的内容

勾选路径名称和命令行,可以帮助我们去判断是否有可疑进程

tasklist命令可以显示进程名称、PID、会话名等信息

tasklist /svc查看进程对应的服务

tasklist /m 查看进程调用的模块信息

tasklist /m ntdll.dll 查看调用ntdll.dll模块的进程信息

tasklist /svc /fi "PID eq 14348" 根据pid值查找进程

查看pid为14348的进程

netstat命令可以显示网络连接信息

最右边的一列为网络状态

netstat -ano | findstr "ESTABLISHED" 查看已建立网络连接的信息

-a:显示所有连接和侦听端口

-n:以数字的形式显示地址和端口

-o:显示连接相关的进行id

根据对应的pid值用tasklist命令查找对应的进程

netstat -anb 显示在创建每个连接或侦听端口涉及的可执行程序(管理权限)

使用powershell进行排查

Get-WmiObject Win32_Process | select Name,ProcessId,ParentProcessId,Path

Get-WmiObject Win32_Process:获取进程信息

select Name,ProcessId,ParentProcessId,Path:进程对应的信息

使用wmic命令进行排查

显示进程名称,父进程id,进程id,进程路径,以csv格式显示

wmic process get name,parentprocessid,processid,executablepath /format:csv

服务排查

services.msc 查看服务项

win+r或cmd输入services.msc

msconfig 查看服务项

文件痕迹

敏感目录

临时文件

不同系统的临时文件的路径相对统一,恶意程序通常会在临时文件驻留

C:\windows\temp(tmp)

预读取文件

Prefetch目录下存放系统已访问过的文件的预读取信息,扩展名为.pf

C:\Windows\Prefetch

Amcache.hve

记录应用程序的执行路径、上次执行的时间和SHA值等,需要专用工具查看

C:\Windows\appcompat\Programs\Amcache.hve

查找时间点

forfiles命令可列出指定时间内新增的文件

搜索2022年1月1日起新增文件的路径、上次修改时间、上次修改日期

forfiles /m *.exe /d +2022/1/1 /s /p c:/ /c "cmd /c echo @path @fdate @ftime" 2>null

也可以通过文件夹中的修改时间进行筛选

如果有文件的修改时间早于创建时间,需要重点排查

也可以通过一些安全工具(D盾、河马、HwsKill、WebshellKill等)排查上述的路径是否有可疑文件

日志分析

主要分析系统日志、安全日志和应用程序日志

win+r 输入eventvwr打开事件查看器,在windows日志下查看

系统日志

系统日志主要是windows系统中各个组件在运行中产生的各种事件。

一般可分为:系统中各种驱动程序在运行中出现的重大问题,操作系统的多种组件在运行中出现的重大问题及应用软件在运行中出现的重大问题等。这些重大问题主要包括重要数据的丢失、错误,以及系统产生的崩溃行为等。下图为系统更新的日志。

系统日志位置:C:\Windows\System32\winevt\Logs\System.evtx

安全日志

安全日志主要记录了各种与安全相关的事件。

该日志内容主要包括:各种登录与退出系统的成功与失败的信息;对系统中各种重要资源进行的各种操作,如对系统文件进行创建、删除、更改等操作。 下图为账户登录成功日志。

安全日志位置:C:\Windows\System32\winevt\Logs\Security.evtx

应用日志

应用程序日志主要记录各种应用程序所产生的各类事件。

例如,系统中的应用程序出现问题时,日志中会有相关记录,该记录中包含与对应事件相关的详细信息。下图为应用程序状态发生变更的日志。

应用日志位置:C:\Windows\System32\winevt\Logs\Application.evtx

powershell日志查看方法

事件查看器-应用程序和服务日志-windows powershell

常用事件ID

常见登录类型

常见启动事件ID

清除日志ID

powershell分析日志

使用powershell进行查询时需要管理权限,常用的两个命令为Get-EventLog、Get-WinEvent,Get-EventLog只获取传统的事件日志,Get-WinEvent是从传统的事件日志和windows事件日志技术生成的事件日志中获取事件,还会获取windows事件跟踪生成的日志文件中的事件。简单说就是Get-WinEvent功能更强大,但是对系统和.NET版本有一定要求。

查找安全日志中事件ID为4625的登录失败的日志信息

Get-EventLog Security -InstanceId 4625

官方文档:-FilterHashtable @{logname='security';ID='4625'}

官方文档:-Year 2022 -Month 3 -Day 1 -Hour 00 -Minute 00$EndTime=Get-Date -Year 2022 -Month 3 -Day 10 -Hour 23 -Minute 59Get-WinEvent -FilterHashtable @{LogName='system';StartTime=$StartTime;EndTime=$EndTime}

通过逻辑连接符可对多种指定日志ID进行联合查询。

查询windows启动和关闭日志

Get-WinEvent -LogName system | Where-Object {$_.ID -eq "12" -or $_.ID -eq "13"}

日志分析工具

FullEventLogViewEventLogExplorerLogParser

Linux篇

系统信息

lscpu 查看主机配置信息

uname -a 查看操作系统信息

cat /proc/version 查看操作系统版本信息

lsmod 查看系统模块信息

用户信息

cat /etc/passwd 查看系统用户信息

显示/bin/bash的表示账户状态为可登录

显示/sbin/nologin的表示账户状态为不可登录

root:x:0:0:root:/root:/bin/bash用户名:密码:用户id:用户组id:注释:用户主目录:默认登录shell

查询uid为0的超级权限账户

awk -F: '{if($3==0)print$1}' /etc/passwd在/etc/passwd文件中,如果第三组的值等于0,那么就输出第一组的值,也就是用户名

查询结尾为/bin/bash的可登录账户

cat /etc/passwd | grep "/bin/bash"

lastb 查询登录失败的信息

虚拟机里看的不太直观,放张云服务器的图

lastlog 查看所有用户最后的登录信息

last 查看用户最近的登录信息

who 查看当前用户登录情况

查询空密码账户,没有就不贴图了

awk -F: 'length($2)==0 {print$1}' /etc/shadow

启动项

init.d是rc.loacl的软链接,存放开机启动的服务脚本

ls -alt /etc/init.d 查看init.d文件下的内容,根据修改时间排序

rc.loacl 启动加载文件

cat /etc/rc.loacl 查看rc.loacl文件内容

计划任务

crontab -l 查看当前计划任务

crontab -u root -l 查看root用户的计划任务

linux计划任务一般是以cron开头

ls /etc/cron* 查看/etc下以cron开头的文件

进程排查

netstat 查看网络连接情况

netstat -antlp 查看所有tcp连接信息的详情

根据可以的pid值查找对应的程序,这里随便查个,pid 3260

ls -alt /proc/3260 查找pid 3260对应的可执行程序

lsof -p 3260 查看pid 3260打开的文件

如果发现恶意文件或进程可以使用以下命令清除/结束

kill -9 pid 强制结束进程

rm -rf 强制删除文件

如果还是无法删除相关文件,可能是文件被加上了守护进程,需要移除i属性

lsattr filename 查看文件属性

chattr -i filename移除文件i属性

可以自己新建个文件测试下,如下所示

查询隐藏进程

ps -ef | awk '{print}' | sort -n | uniq > 1ls /proc | sort -n | uniq > 2diff 1 2

top 查看系统状态

对于挖矿类的排查可以用过top命令来排查,挖矿类的通常资源占用率比较高

服务排查

chkconfig --list 查看系统运行的服务

1-6代表不同等级,自己查吧不细写了

systemctl list-unit-files 查看系统服务运行状态

文件痕迹

敏感目录

下列路径通常为恶意软件的下载路径和后门配置的路径

/tmp/usr/bin/usr/sbin~/.ssh/etc/ssh

查找时间点

通过find命令查找一天内新增的脚本文件

find / -ctime 0 -name "*.sh"

查看该目录下最近创建的前10个文件

ls -lha | head -n 10

stat查看文件的详细信息,access访问时间,modify修改时间,change文件属性更改时间

查找特殊文件,权限为777的文件

find / -perm 777

查找php文件里带有sys的文件,xargs egrep 后面为要查询的文件内容

find -name "*.php" | xargs egrep sys

查看系统命令的修改时间和大小

ls -alt /bin ls -lha /bin

查找有suid权限的程序

find / -type f -perm -04000 -ls -uid 0 2>/dev/null

后门检测工具:chkrootkit、rkhunter等

更新记录

更新时间

更新章节

更新内容

2022-1-19

windows篇

文件痕迹

2022-1-19

linux篇

文件痕迹

2022-3-30

windows篇

日志分析


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网络安全与网站安全及计算机安全:小白如何使用Xshell远程连接服务器和掌握文件传输技巧
下一篇:java设计模式之观察者模式的介绍及使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~