第168天:应急响应-ELK 日志分析系统&Yara规则&样本识别&特征提取&规则编写

目录

[案例一:ELK 搭建使用-导入文件&监控日志&语法筛选](#案例一:ELK 搭建使用-导入文件&监控日志&语法筛选)

[案例二:Yara 规则使用-规则检测&分析特征&自写规则](#案例二:Yara 规则使用-规则检测&分析特征&自写规则)


案例一:ELK 搭建使用-导入文件&监控日志&语法筛选

该软件是专业分析日志的工具,但是不支持安全软件的分析

这里我是在kali中搭建的

搭建参考文章:(第一篇成功,第二篇呢可能是国外的docker关闭了未成功)

ELK详细搭建流程_elk搭建-CSDN博客 (本地搭建)

5分钟快速安装ELK(一)(docker搭建)

安装完成的界面

三种模式

选择日志上传

上传文件

导入

命名并导入

上传完成以后去查看

可以根据不同类别去分类查看

IP

时间戳

ua头

这里看到呢ua头有个sqlmap直接定位

搜索特征字符不是单独出现,需要在前后加上*

还可以自动加入机器,自动化进行分析,可以自己研究一下,主要是了解日志平台的分析

案例二:Yara 规则使用-规则检测&分析特征&自写规则

项目地址

https://github.com/VirusTotal/yara
部分规则: https://github.com/Yara-Rules/rules

基本使用

检测挖矿病毒

yara需要借助规则去判断,规则直接下载好

yara64.exe 规则 -r 可疑程序/或者文件夹

根据规则所以就得对大概木马类型做出判断

通过帮助文档查看

检测勒索病毒

检测cs木马,没检测到,这里是因为我的cs版本比较高,而项目规则比较老,导致匹配不到

自写Yara-cs规则

可以自己根据需求去写文件进行判断,需要提取特征,根据特征的共同性去判断。

写规则的话,根据两个不同的ip和端口绑定的cs马,通过010editer判断不同程序的共同特征

这里是我自己写的,没那么多规律可言,只是简单判断,正常的话根据文件头,关键字,协议,域名等等来进行编写

我准备了三个cs文件,1个是cs4.0 32位,还有两个cs4.5 32 位 64位

两个特征

第三个

第四个

编写规则

-Yara 规则内容支持字符串、正则表达式、十六进制进行匹配。
字符串:定义一个变量 $a = " 字符串内容 "
正则表达式:定义一个变量 $a = / 正则表达式内容 /
十六进制:定义一个变量 a = { 十六进制内容 } -Yara 规则条件 and :与 or :或 not :非 all of them :所有条件匹配即告警 any of them :有一个条件匹配即告警 a and $b and c : abc 同时匹配即告警 (a and $b) or $c :匹配 a 和 b 或 c 即告警

按照如下实例写出规则,同时匹配四个规则就报警

rule csshell_check
{
	meta:
		author = "xiaojiesec"
		description = "test check"
		date = "2024-09"
	strings:
		$a = "MZ"
		$b = "_set_invalid_parameter_handler"
		$c = "KERNEL32.dll"
        $d = "msvcrt.dll"

		
	condition:
		all of them
}

把不同类型的木马放在一个文件夹下

统一进行检测,只有cs后门被检测了出来

自写Yara-挖矿规则

这里就规范一点从文件头,关键字,协议,域名四个角度切入

文件头

这里可以写成字符串的MA,也可以写成16进制的{4D 5A}

关键字

这里就根据文件命名,xmrig进行搜索,这里切换成text进行搜索,不然搜索不到

协议

搜索资料,挖矿病毒常见协议位stratum和xmr协议

搜索xmr也能找到,但是都是文件名在干扰,忽略

域名这里其实没有找到,但是有一个字符串pool,出现了很多次

检测

自写Yara-php内存马规则

这里我觉得内存马的编写确实有问题,一是没办法从多个样本分析,只有一个idea,或者phpstudy环境,而且感觉不能确定唯一性,只做简单了解即可

下面这篇文章介绍过使用php内存马

第146天:内网安全-Web权限维持&各语言内存马&Servlet-api类&Spring类&Agent类_第146天web权限维持-内存马-CSDN博客

这里介绍过查杀

第162天: 应急响应-网站入侵篡改指南&Webshell 内存马查杀&漏洞排查&时间分析_东方通webshell 日志-CSDN博客

要抓取内存马,首先需要把内存包给导出来,进行分析

通过pcdump,把这个进程给进行导出

使用命令

procdump.exe -accepteula -ma 进程名 文件名.dmp

procdump.exe -accepteula -ma phpstudy.exe php.dmp

首先常见的eval

因为这个php内存马是你删除就立刻上传文件,应该涉及到sleep,条件竞争,以及file文件上传,直接搜php函数搜索不到,其实我也不是很理解

就根据这三个函数进行尝试

rule _checkphp
{
	meta:
		author = "xiaojiesec"
		description = "test check"
		date = "2024-09"
	strings:
		$a = "eval"
		$b = "file"
		$c = "sleep"
		
	condition:
		all of them
}

确定进程号

通过进程号检测

但是这里规则写的不好,检测别的进程号也能够检测到,主要是不理解为什么函数不出现

下面是ai写的也没用,根本搜索不到关键字,了解一下工具的使用,以及利用进程号分析

rule PHP_Memory_Webshell_DynamicWrite {  
    meta:  
        description = "Detects PHP scripts that attempt to dynamically write webshell code to a file"  
        author = "Your Name"  
        version = "1.0"  
        date = "YYYY-MM-DD"  
    strings:  
        $ignore_user_abort = "ignore_user_abort(true);"  
        $set_time_limit = "set_time_limit(0);"  
        $unlink = "@unlink(__FILE__);"  
        $eval_code = "<?php @eval($_POST\['c'\]); ?>"  
        $file_put_contents = "file_put_contents"  
        $usleep = "usleep"  
    condition:  
        $ignore_user_abort and  
        $set_time_limit and  
        $unlink and  
        $file_put_contents and  
        $usleep and  
        # This is a heuristic to check for the eval code being written to a file  
        # Note: This is not foolproof, as the actual code written to the file might vary  
        # But it gives us a good indication of the intent  
        # We use a wildcard to match the variable assignment and loop structure  
        # which are likely to be present in such scripts  
        (  
            # Matching the file variable assignment  
            /\$file\s*=\s*['"].+['"];/ and  
            # Matching the code assignment  
            /\$code\s*=\s*['"].+<?php\s*@eval\(\$_POST\['c'\]\);\s*>.+['"];/ and  
            # Matching the while loop structure  
            /while\s*\(1\)\s*\{/  
        )  
}

自写Yara-java内存马规则

写在前面这里我发现小迪师傅讲的有一点点问题,我发现没上传内存马,用小迪的程序检测也能够检测出来,真尴尬啊,我也只是简单复现了一下

注入两个不同的内存马

把idea的内存包导出,这个过程会比较慢,因为java会创建虚拟机

先分析这个ico后缀的

发现他们两个有相同的前缀 org.apache.coyote 查的时候可能输入完整的查不到,可以只查一部分,就像java中类的概念一样

搜索

在分析特殊之处 TimeZoneSerializer

就根据这两条这一个判断gsl内存马

rule java_chechk
{
	meta:
		author = "xiaojiesec"
		description = "test check"
		date = "2024-09"
	strings:
		$a = "org.apache.coyote"
		$b = "TimeZoneSerializer"
		
	condition:
		all of them
}

存在gsl内存马

判断别的没有

分析完这个分析一下刚才上传了一个lister 一个filter

org.apache.jasper

还有另外一个相同的类 org.apache.jsp

同时存在判断有内存马

rule java_chechk
{
	meta:
		author = "xiaojiesec"
		description = "test check"
		date = "2024-09"
	strings:
		$a = "org.apache.coyote"
		$b = "TimeZoneSerializer"
		
	condition:
		all of them
}

判断结果

判断别的进程的结果

但是这个规则总觉得有很多问题,只是简单了解了一下

相关推荐
鸭梨山大。1 小时前
Jenkins安全部署规范及安全基线
安全·中间件·jenkins
网安-轩逸1 小时前
网络安全核心目标CIA
安全·web安全
鸭梨山大。3 小时前
Jenkins 任意文件读取(CVE-2024-23897)修复及复现
安全·中间件·jenkins
黑客老陈3 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
代码改变世界ctw10 小时前
如何学习Trustzone
安全·trustzone·atf·optee·tee·armv8·armv9
WTT001112 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
群联云防护小杜15 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
ihengshuai15 小时前
HTTP协议及安全防范
网络协议·安全·http
黑客Jack16 小时前
防御 XSS 的七条原则
安全·web安全·xss
云云32117 小时前
怎么通过亚矩阵云手机实现营销?
大数据·服务器·安全·智能手机·矩阵