草庐IT

应急响应基础技能

lisenMiller 2023-04-17 原文

windows

任务计划列表

1. 计算机管理窗口,选择 系统工具 中 任务计划程序 中的 任务计划程序库选项 可以查看任务计划的名称,状态,触发器等详细信息

2.powershell中输入get-scheduledtask 可以查看当前系统所有任务计划信息

任务路径,名称,状态等详细信息

3.命令行中输入schtasks命令,获取任务计划信息

进程排查

对于windows系统排查中,找到恶意进程的pid,程序路径,还需要找到ppid以及程序加载的DLL

1. 通过任务管理器排查 

win+r taskmgr 
右键name 添加命令行

2.通过tasklist排查

#tasklist 可以查看 每个进程提供的服务
  tasklist /svc    #显示每个进程和服务的对应情况
#tasklist可以查看每个进程加载了什么模块
  tasklist /m
#如果确定了某个模块是恶意模块可以查找启动了这个模块的服务的情况
  tasklist /m ntdll.dll

3.通过netstat命令进行排查

一般来说都是通过netstat定位出pid后再通过task list定位程序

服务排查

1. service.msc命令打开服务窗口 查看所有服务项 名称,秒速,状态等

文件痕迹排查

通常情况下可以对以下方面对文件痕迹进行排查

  1. 恶意软件常用的敏感路径进行排查

  2.确定了应急响应时间点后,对时间点前后的文件进行排查

  3.对带有特征的恶意软件进行排查,包含代码关键字或关键字函数,文件权限特征等

1.敏感目录

恶意程序一般会在程序中写好投放的路径,临时文件的路径相对统一,一般来说查看临时目录下是否有异常文件.

c:\windwos\tmp

2.预读取文件查看

Prefetch是预读取文件夹,用来存放系统已经访问过的文件的预读取信息,扩展名为pf.自动创建 prefetch文件夹是为了快系统启动进程

文件位置 c:\windows\Prefetch 

根据应急响应时间进行查看

1.根据时间点来查看forfiles命令

forfiles /p /m /s /c /d

/p Path : D:\xx|xx
/m searchmask    默认的searchmask是 *.* 例如 *.rar文件
/s forfiels 再子目录中搜索
/c command 在每个匹配的文件上运行指定的command,带有空格的命令字符串必须用双引号括起来默认的command是 "cmd /c echo @file"

2.webshell查找

可以通过D盾等

日志排查

系统日志
主要是windows各个组件在运行中产生的各种事件
系统中各种驱动程序在运行中出现的重大问题.操作系统的多种组件出现重大问题,应用软件出现重大问题

重大问题包括重要数据丢失,错误,以及系统产生的崩溃行为
安全性日志

安全日志记录了各种与安全相关的事件.包括登录与退出系统的成功不成功信息
对系统中各种重要资源进行操作,例如:系统文件的创建,删除,更改操作
应用程序日志

记录了各种应用程序产生的各类事件.
系统中sqlserver数据库被暴力破解时,会有相关的记录.包含对应时间相关的详细信息. 

事件级别

  • 错误:重大问题,包括数据丢失,功能损失,例如服务启动期间无法加载
  • 警告:潜在问题,例如 磁盘空间低,记录一个警告
  • 信息:程序和服务是否操作成功的事件 例如 网络驱动成功加载

日志被清除相关日志事件ID对应的描述

事件日志服务关闭  1100  信息  安全

事件日志被清除  104  信息  系统

事件日志被清除  1102  信息  安全

linux

查看用户信息

1. 查看系统所有用户信息

cat /etc/passwd

2.分析超级用户权限

awk -F:'{if($3=0)print $1}' /etc/passwd

3.查看可登录账户

cat /etc/passwd | grep /bin/bash

4.查看用户错误的登陆状态

lastb    #查看用户错误的登陆列表,错误的登录方法,IP地址,以及时间等等

5.查看所有用户的最后登陆状态

lastlog    

6.查看当前用户登录系统状态

who

7.查看空口令账户

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

启动项

#/etc/ini.d文件时自启动的内容

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

任务计划列表

1. crontab -l 命令查看当前的任务计划,指定用户进行查看

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

2.查看etcl下的任务计划文件

linux系统中的任务计划文件以cron开头,利用正则表达式的* 筛选所有以cron开头的文件

ls /etc/cron*

通常还包含任务计划的文件夹,* 代表文件夹下所有文件

/etc/crontab  /etc/cron.d/*
/etc/cron.daily/*  /etc/cron.hourly/*
/etc/cron.monthly/*  /etc/cron.weekly/
/etc/anacrontab

进程排查

netstat 查看网络连接

netstat -ano or netstat -pantl
#分析可疑端口可疑ip,可疑pid以及程序进程.

根据pid的值利用

#ls -alt /proc/pid命令查看其对应的可执行程序

ls -alt /proc/2963

利用lsof -p pid命令查看进程打开的文件

lsof -p 2963 #查看pid为1963进程打开的文件

查杀文件

1. 恶意进程使用kill命令结束
kill -9 pid
2.使用rm命令删除木马文件
rm -rf filename 
3.如果root用户无法删除,可能是该文件加上了i属性

lsattr filename    #查看文件属性
chattr -i filename    #移除i属性
4.如果存在守护进程而无法删除,通过先把进程挂起,查杀守护进程后,再将进程删除

服务排查

1.chkconfig --list 

chkconfig --list
atd     0:off    1:off    2:on    3:on    4:on  5:off    6:off

1单用户模式
2无网络连接的多用户命令行模式
3.有网络连接的多用户命令行模式
4.不可用
5.带图形界面的多用户模式
6.重新启动

2.service --status-all

查看所有服务的状态

文件痕迹排查

1. 敏感目录

/tmp 和~/.ssh和/etc/ssh的authorized_keys 存放黑客的公钥

2.时间点查找

  find命令

find :指定目录下查找文件

-type b/d/c/p/l/f 设备,目录 字符设备 管道 符号链接 普通文件

-mtime -n +n 文件更改时间查找 units:day

-atime -n +n 文件访问时间

-ctime -n +n 创建时间查找 

  stat命令

stat 命令能够详细查看文件的创建时间,修改时间和访问时间,修改时间距离应急响应时间日期接近,线性关联说明可能被篡改

stat /var/www/html/q.php查看这个文件的相关时间属性

3.对系统命令进行查询 ls 和ps命令等可能会被攻击者篡改

ls -alt /bin    #查看命令目录中相关系统命令的修改时间
ls -alh /bin   # 查看相关文件大小,如果明显i安达,则文件很可能被鹈鹕按

4.linux后门查杀

利用第三方查杀工具chkrootkit,rkhunter等检测rootkit是否被安装到当前系统中.

5.排查suid程序/查找suid程序

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

 日志概述

linux日志存放在目录/var/log下
/var/log/wtmp  #登录进入,推出,数据交换,关机重启 即last
/vat/log/cron  #定时任务相关日志
/var/log/messages  #记录系统启动后的信息和错误日志
/var/log/apahce2/access.log 
/var/log/auth.log  #记录系统授权信息,包括用户登录和使用权限机制
/var/log/secure  #大多数应用输入的账号与密码以及登陆成功与否
/var/log/faillog  #记录登陆系统不成功的账号信息
/var/spool/mail  #命令查看邮件相关日志记录文件

 

 

 

 

有关应急响应基础技能的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  4. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  5. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  6. ruby - 如何保持我不常用的编程语言技能 - 2

    关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我不经常使用ruby​​-通常它加起来相当于每两个月或更长时间编写一次脚本。我的大部分编程都是使用C++进行的,这与ruby​​有很大不同。由于我与ruby​​之间的差距如此之大,我总是忘记语言的基本方面(比如解析文本文件和其他简单的东西)。我想每天练习一些基本的东西,我想知道是否有一些我可以订阅的网站,并且会向我发送当天的Ruby问题或类似的东西。有人知道这样的站点/Internet服务吗?

  7. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  8. 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) - 2

    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型

  9. ruby-on-rails - Rails 在记录 200 OK 后在做什么? (调试响应时间慢) - 2

    我试图在我的RubyonRails应用程序中调试一个极其缓慢的请求调用。我已设法根据自己的喜好优化Controller方法,Rails的日志告诉我它已在XX毫秒内完成操作(Completed200OKin5049ms(Views:34.9ms|ActiveRecord:76.3ms)).但是,在加载页面时,在浏览器中实际呈现任何内容之前打印此消息很长;最多约15秒的等待时间。Rackmini-profiler证实了这一点,告诉我GET操作(不计算完成Controller操作所花费的时间)花费了14秒左右。(分析器还确认Controller操作的执行时间约为5秒)。我可以接受Contro

  10. ruby - 带有 header 的 Sinatra 流式响应 - 2

    我想通过Sinatra应用程序代理远程文件。这需要将带有header的HTTP响应从远程源流式传输回客户端,但我不知道如何在Net::HTTP#提供的block内使用流式API时设置响应header获取响应。例如,这不会设置响应头:get'/file'dostreamdo|out|uri=URI("http://manuals.info.apple.com/en/ipad_user_guide.pdf")Net::HTTP.get_response(uri)do|file|headers'Content-Type'=>file.header['Content-Type']file.re

随机推荐