1.文件痕迹排查
1.1 敏感目录
- 各个盘下的temp文件
- C:\Windows\SystemTemp (通常用于操作系统和一些系统服务的临时文件存储。)
- win+r输入regedit,打开注册表,再搜索.tmp文件
- cmd输入
echo %tmp%
查看用户运行的应用程序和软件的临时文件存储路径
- 浏览器历史记录
浏览器的历史记录通常保存在用户的本地文件系统中,不同的浏览器会将历史记录存储在不同的目录和文件中。以下是一些常见浏览器的历史记录保存路径:- Google Chrome
Windows:
路径: C:\Users<你的用户名>\AppData\Local\Google\Chrome\User Data\Default
文件: History(没有扩展名,SQLite数据库文件)
macOS:
路径: ~/Library/Application Support/Google/Chrome/Default/
文件: History
Linux:
路径: ~/.config/google-chrome/Default/
文件: History - Mozilla Firefox
Windows:
路径: C:\Users<你的用户名>\AppData\Roaming\Mozilla\Firefox\Profiles<你的profile文件夹>
文件: places.sqlite(SQLite数据库文件,包含历史记录和书签)
macOS:
路径: ~/Library/Application Support/Firefox/Profiles/<你的profile文件夹>/
文件: places.sqlite
Linux:
路径: ~/.mozilla/firefox/<你的profile文件夹>/
文件: places.sqlite - Microsoft Edge (基于 Chromium)
Windows:
路径: C:\Users<你的用户名>\AppData\Local\Microsoft\Edge\User Data\Default
文件: History(与Chrome类似,SQLite数据库文件)
macOS:
路径: ~/Library/Application Support/Microsoft Edge/Default/
文件: History
Linux:
路径: ~/.config/microsoft-edge/Default/
文件: History - Safari (仅适用于 macOS)
macOS:
路径: ~/Library/Safari/
文件: History.db(SQLite数据库文件) - Opera
Windows:
路径: C:\Users<你的用户名>\AppData\Roaming\Opera Software\Opera Stable
文件: History(与Chrome类似,SQLite数据库文件)
macOS:
路径: ~/Library/Application Support/com.operasoftware.Opera/
文件: History
Linux:
路径: ~/.config/opera/
文件: History
- Google Chrome
这些路径和文件可能会根据浏览器版本或用户设置的不同有所变化。在大多数情况下,浏览器历史记录文件是以SQLite数据库的形式存储的,可以通过SQLite查看工具进行分析。
- 用户recent文件(最近打开过的文件)
win+r输入recent - 预读取文件查看
系统预读文件以PF为扩展名,它们包含了载入文件的详细信息和载入顺序.每个应用程序都会在Prefetch目录中留下相应的预读取文件,预读取文件描述了应用程序或系统启动时各个模块的装载顺序,其命名方式是以应用程序的'可执行文件名'为基础,加上一个"-"和描述执行文件完整路径的十六进制值,再加上 文件扩展名 PF构成的.
win+r输入%systemroot%\Prefetch
2.时间点查看
2.1forfiles命令查找文件
forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM/DD/YYYY | DD}]]
/m 文件类型,默认.,若搜索rar文件/m *.rar
/s 指示 forfiles 在子目录中搜索。如果不加此参数,只操作指定目录下这一级,反之指定目录下所有层级目录中的文件都会被操作
/d[{+|-}] [{MM/DD/YYYY月/日/年|DD天数}]
选择日期大于或等于指定日期的文件,DD当前日期减去DD天、未指定+或-,则使用+,DD有效范围为0-32768
/c Command 命令字符串中能够使用的变量。
2.2文件创建、修改、访问时间
- 右键文件 - 【属性】-【常规】可以查看文件的创建、修改、访问时间:
攻击者为了掩盖痕迹,通常会用菜刀等工具修改文件的时间信息,比如修改时间比创建时间早,那这个文件就很可疑。确认事件发生的时间点后,可以查找时间范围内改动过的文件。
2.3Webshell
常见检测方法:
-基于主机的流量-文件-日志检测、关键字(危险函数匹配)、语义分析
- 工具查杀
在线工具:https://ti.aliyun.com/#/webshell
Windows:D盾 - http://www.d99net.net/down/WebShellKill_V2.0.9.zip
Linux:河马 - https://www.shellpub.com/
灭绝师太在线php查杀:http://tools.bugscaner.com/killwebshell/
微步在线:https://threatbook.cn/next/product/sandbox
牧云:https://stack.chaitin.com/security-challenge/webshell/index - 静态检测
手动查看Web目录下的可解析执行文件;.asp、.php、.jsp、.aspx。然后再从这类文件中查找后门的特征码,特征值,危险函数来查找webshell,例如查找内容含有exec()、eval()、system()的文件。
可疑函数调用 | 文件操作 | 网络操作 | |
---|---|---|---|
PHP | eval(),system(),exec(),shell_exec(),passthru(),assert(),base64_decode() | Fopen(),fwrite(),file_get_contents(),file_put_contents() | Fsockopen(),curl_exec(),file_get_contents(‘http://...’) |
ASP | Execute(),Eval(),CreateObject() | FileSystemObject | WinHttp.WinHttpRequest |
JSP | Runtime.getRuntime().exec() | ||
aspx | eval(),execute request(),eval request(),"ev"&"al(request(, | <%if (Request.Files.Count!=0) { Request.Files[0].SaveAs(Server.MapPath(Request[“f”]) ); }%> |
- 常用排查命令
搜索目录下适配当前应用的网页文件,查看内容是否有Webshell特征
find ./ type f -name "*.jsp" | xargs grep "exec("
find ./ type f -name "*.php" | xargs grep "eval("
find ./ type f -name "*.asp" | xargs grep "execute("
find ./ type f -name "*.aspx" | xargs grep "eval("
- 对于免杀webshell可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"
1、xargs:xargs命令用于将输入数据重新格式化后作为参数传递给其他命令。在这个命令中,xargs将find命令找到的文件列表作为参数传递给grep命令。
2、grep "eval(":grep命令用于搜索文本,并输出匹配的行。这里"eval("是grep命令的搜索模式,用于查找包含eval(字符串的行。
- 通过Web访问日志分析可快速定位到webshell位置,主要关注web日志,查看有哪些异常的HTTP访问,有源码的情况下,可以通过比对文件差异定位webshell
- 动态检测(webshell执行时表现出来的特征)
把webshell特有的HTTP请求/响应做成特征库,加到IDS里面去检测。
webshell如果执行系统命令的话,会有进程。Linux下就是起了bash,Win下就是启动cmd,这些都是动态特征。 - 常规流程:
1、定位时间和范围:扫描WebShell位置;定位文件创建的时间;检查Web根目录.htaccess 文件
2、Web日志审计:例如查看access.log(/var/log/nginx),下载到本地审计
3、漏洞分析:分析可能存在漏洞的地方,复现漏洞GetShell,ls -la显示可能隐藏的文件。
4、漏洞修复:清除WebShell并修复漏洞
5、对系统和Web应用进行安全加固 - webshell木马特征-待实验完善
参考学习链接:
1.中国菜刀和蚁剑
2.哥斯拉和冰蝎
3.https://cloud.tencent.com/developer/article/1621021
木马 | 特征 |
---|---|
哥斯拉godzilla | @session_start(); - 开启一个会话。 @set_time_limit(0); - 设置脚本执行时间为无限。 @error_reporting(0); - 关闭所有错误报告。 |