everything-在应急响应中的使用
2023-6-7 13:32:0 Author: 白帽子左一(查看原文) 阅读量:39 收藏

扫码领资料

获网安教程

免费&进群

在入侵排查过程中,检索最近的文件变动是非常重要的一个步骤。而Windows中并没有像Linux那样的find命令可以支持查找指定时间段内变动的文件。而命令行的everything(es)的出现刚好弥补了Windows命令行文件查找的功能。

文章目录

安装everthing命令行版ES

https://www.voidtools.com/zh-cn/downloads/

同时下载ES,放到 C:\Windows\System32\ 目录下。

可以在cmd中调用es就算安装成功。

注:命令行执行es需要先在后台运行everything。

ES 命令行注意事项

特殊符号转义

命令行和GUI会有部分使用区别,一些特殊符号\ & | > < ^ 需要用双引号(”)来转义。例如查找最近的log文件变动的命令如下:

es ext:log dm:">20230101" dm:"<20230201"

优化查找优先级

es有从左到右的搜索优先级排序。比如同样的搜索规则,交换上面的顺序。

es dm:">20230101" dm:"<20230201" ext:log

虽然得到的结果是一样的,但是查找的速度慢很多。这里是先查找这一个月内变动的所有文件,再从中查找log的文件。

ES在应急排查中的常用选项

应急排查常用参数

  • path: 匹配路径和文件名.

  • file:仅匹配文件.

  • folder:仅匹配文件夹.

  • child: 搜索包含匹配文件名文件的文件夹.

  • parent: 搜索指定路径下的文件和文件夹 (不包含子文件夹).

  • content: 搜索文本内容.

  • count: 指定搜索结果最大值.

  • da: 搜索指定访问时间的文件和文件夹.

  • dc: 搜索指定创建日期的文件和文件夹.

  • dm: 搜索指定修改日期的文件和文件夹.

  • rc: 搜索指定最近修改日期的文件和文件夹.

  • startwith: 搜索指定文本开头的文件.

  • endwith: 搜索以指定文本结尾的文件 (包含扩展名).

  • ext: 搜索和列表中指定的扩展名匹配的文件 (扩展名以分号分隔).

  • size: 搜索指定大小的文件 (以字节为单位).

da、dc、dm分别对应的就是atime、ctime、mtime。

函数语法

  • function:value 等于某设定值.

  • function:<=value 小于等于某设定值.

  • function:>=value 大于等于某设定值.

  • function:start..end 在起始值和终止值的范围内.

  • function:start-end 在起始值和终止值的范围内.

比如上面的

dm:">20230101" dm:"<20230201"等价于dm:"20230101..20230201"等价于dm:"20230101-20230201"

大小语法

size[kb|mb|gb]

size:">100kb" size:"<1mb"等价于size:"100kb-1mb"

日期常数

  • today

  • yesterday

  • tomorrow

  • [last|past|prev|current|this|coming|next] + [year|month|week]

  • [last|past|prev|coming|next] + [x] +[years|months|weeks|days|hours|minutes|mins|seconds|secs]

后面的两个是指常量可以拼接。比如:

  • 上周可以表示为:lastweek

  • 过去三天可以表示为:last3days

  • 当前这一个小时可以表示为:this1hours

ES应急排查常用语句汇总

下面这些语句会尽量涵盖上面所有的常用参数,可以帮助进一步理解每个参数的含义和用法。

指定日期发生变动的txt文件,最多显示10个

es rc:"20230209"  ext:txt count:10等价于es dm:"20230209"  ext:txt count:10

这里测试rc和dm是等价的。

最近7天内发生变动且小于20kb的jsp文件

es ext:jsp dm:"last7days" size:"<20kb"

某时间段内被访问过且包含指定字符串的文件

比如查找2022年12月31号到2023年1月1号被访问的文件,包含eval关键字的php或asp文件。

es ext:php;asp da:"20221231-20230101" content:"eval"

某日期前创建且指定字符串开头文件名的日志文件

es ext:log startwith:"ydservice" dc:"<20230205"

指定目录下的图片文件

这里要分为两种情况:

包含目录下的子目录

es ext:jpg;png path:"C:\Program Files\"  count:5

不包含目录下的子目录

es ext:jpg;png path:"C:\Program Files\"  parent:"C:\Program Files\" count:5

这里也可以看出es是深度优先遍历的查找顺序。

查找包含指定文件名的父文件夹

es path:"C:\Program Files\" child:"test" count:1

指定字符结尾的文件名

有部分文件可能本身没有后缀名,比如aaa,bbb,ccc这种不知道格式的文件。此时再用ext就无法匹配了。

es endwith:"j" file: count:10

更多的使用就结合实际情况,按照需求排列组合参数进行查找即可。

Everything 高级用法补充

批量文件正则重命名

比如我想把下面的文件重命名为其他的日期格式。

比如把日期格式从20230204转换成2023-02-04的格式,正则可以这样写。其中\1和\2分别表示为上面小括号的匹配内容。

原始文件名表达式:^ydservice\.2023(\d{2})(\d{2})\.log$
新文件名表达式:ydservice.2023-\1-\2.log

文件时间QA

Q:为什么有的文件修改时间早于创建时间?

A:当旧的文件拷贝到新的目录下,创建时间为当时拷贝的时间,但是修改时间仍然为之前修改的时间,也就是出现了修改时间早于创建时间的问题。

来源:https://zgao.top/everything-在应急响应中的使用/

声明:中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

@
学习更多渗透技能!体验靶场实战练习

hack视频资料及工具

(部分展示)

往期推荐

【精选】SRC快速入门+上分小秘籍+实战指南

爬取免费代理,拥有自己的代理池

漏洞挖掘|密码找回中的套路

渗透测试岗位面试题(重点:渗透思路)

漏洞挖掘 | 通用型漏洞挖掘思路技巧

干货|列了几种均能过安全狗的方法!

一名大学生的黑客成长史到入狱的自述

攻防演练|红队手段之将蓝队逼到关站!

巧用FOFA挖到你的第一个漏洞

看到这里了,点个“赞”、“再看”吧

文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NTcxMjQ1MA==&mid=2247595597&idx=1&sn=08695d705b8a4243ac2ab1b85a0f3559&chksm=ebeb3f60dc9cb67693e768ba9cd27b0d2051672d183cc03f02141afa56f26d3667d8cd9b2a57#rd
如有侵权请联系:admin#unsafe.sh