java中的接口是类吗
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~