当前位置: 首页 > article >正文

【网络法医】恶意软件分析

【网络法医】恶意软件分析

  • 1.yara离线分析
  • 2.ClamAV离线分析
  • 3.YaraGen离线分析
  • 4.Loki离线分析
  • 5.rkhunter rootkit离线分析
  • 6.PEstudio Windows恶意软件分析
  • 7.DiE恶意文件分析
  • 8.FLOSS混淆字符串识别

1.yara离线分析

安装yara:

sudo apt-get install -y yara

可以使用此脚本从 github 下载并合并所有 yara 恶意软件规则(脚本地址):

#!/usr/bin/env python
# encoding: utf-8

import os
import shutil

def get_rules_from_git():
	shutil.rmtree("./rules")
	os.system("git clone https://github.com/Yara-Rules/rules.git")

def list_yara_files():
	all_yara_files = []
	for root, directories, filenames in os.walk("./rules/malware"):
		print ("Processing " + root)
		filenames.sort()
		for file_name in filenames:
			rule_filename, rule_file_extension = os.path.splitext(file_name)
			if rule_file_extension == ".yar" or rule_file_extension == ".yara":
				all_yara_files.append(os.path.join(root, file_name))
	return all_yara_files

def remove_incompatible_imports(files):
	filtered_files = []
	for yara_file in files:
		with open(yara_file, 'r') as fd:
			yara_in_file = fd.read()
			if not (("import \"math\"" in yara_in_file) or ("import \"cuckoo\"" in yara_in_file) or ("import \"hash\"" in yara_in_file) or ("imphash" in yara_in_file)):
				filtered_files.append(yara_file)
	return filtered_files

def fix_duplicated_rules(files):
	filtered_files = []
	first_elf = True
	to_delete = False
	for yara_file in files:
		print ("Processing " + yara_file)
		with open(yara_file, 'r') as fd:
			yara_in_file = fd.readlines()
			for line in yara_in_file:
				if line.strip() == "private rule is__elf {":
					if first_elf:
						first_elf = False
					else:
						to_delete = True
				if not to_delete:
					filtered_files.append(line)
				if (not first_elf) and line.strip() == "}":
					to_delete = False
			filtered_files.append("\n")
	return filtered_files

def merge_rules(all_rules):
	with open("malware_rules.yar", 'w') as fd:
		fd.write(''.join(all_rules))

def main():
	get_rules_from_git()
	all_yara_files = list_yara_files()
	all_yara_filtered_1 = remove_incompatible_imports(all_yara_files)
	all_yara_filtered_2 = fix_duplicated_rules(all_yara_filtered_1)
	merge_rules(all_yara_filtered_2)

# Main body
if __name__ == '__main__':
	main()

之后,执行命令,将创建一个名为malware_rules.yar的文件,其中包含所有恶意软件的 yara 规则:

mkdir rules
python malware_yara_rules.py

最后,使用yara工具进行离线恶意软件分析:

yara -w malware_rules.yar image  # Scan 1 file
yara -w malware_rules.yar folder # Scan the whole folder

2.ClamAV离线分析

1、安装:

sudo apt-get install -y clamav

2、识别:

sudo freshclam      # Update rules
clamscan filepath   # Scan 1 file
clamscan folderpath # Scan the whole folder

3.YaraGen离线分析

1、下载YaraGen:

https://github.com/Neo23x0/yarGen

2、识别风险:

python3 yarGen.py --update
python3 yarGen.py --excludegood -m  ../../mals/

4.Loki离线分析

1、下载Loki

https://github.com/Neo23x0/Loki

2、检测基于四种检测方法:

1. File Name IOC
   完整文件路径/名称的正则表达式匹配

2. Yara Rule Check
   Yara 规则与文件数据和进程内存匹配

3. Hash Check
   将已知的恶意哈希值(MD5、SHA1、SHA256)与扫描的文件进行比较

4. C2 Back Connect Check
   将流程连接端点与 C2 IOC 进行比较

5.rkhunter rootkit离线分析

可以使用rkhunter工具来检查文件系统中是否存在可能的rootkit和恶意软件

官方网站:https://rkhunter.sourceforge.net/


6.PEstudio Windows恶意软件分析

可以获取 Windows 可执行文件的信息,并进行恶意软件的识别

下载地址:https://www.winitor.com/download

运行效果如图:

在这里插入图片描述


7.DiE恶意文件分析

Detect It Easy (DiE)是一款功能强大的文件类型识别工具,深受全球恶意软件分析师、网络安全专家和逆向工程师的喜爱。DiE 支持基于签名和启发式分析,可在包括Windows、Linux 和 MacOS在内的各种平台上高效地检查文件

下载地址:https://github.com/horsicq/Detect-It-Easy/

运行效果如图:

在这里插入图片描述


8.FLOSS混淆字符串识别

FLARE 混淆字符串求解器使用高级静态分析技术自动从恶意软件二进制文件中提取和反混淆所有字符串

flare-floss

使用示例:

1、从恶意软件二进制文件中提取混淆的字符串

floss malware.exe

2、仅提取堆栈和紧密字符串

floss --only stack tight -- suspicious.exe

3、不提取静态字符串

floss --no static -- backdoor.exe

http://www.kler.cn/a/546885.html

相关文章:

  • DeepSeek教unity------MessagePack-02
  • 大语言模型推理中的显存优化 有哪些
  • 理解 WebGPU 中的 navigator.gpu 和 adapter:从浏览器到显卡的旅程
  • lvsDR模式实现
  • Uniapp中使用Vue3开发微信小程序的全局状态管理实践
  • 计算机网络原理习题一
  • Ubuntu20.04桥接网络和静态IP配置
  • 能用GPT解决的,就不用自己动手
  • 深入探讨复变函数:核心概念与关键应用
  • Django html模板的继承
  • 【H5自适应】高端科技类pbootcms网站模板 – 三级栏目、下载与招聘功能支持
  • kibana es 语法记录 elaticsearch
  • 稀土抑烟剂——为纺织品安全加持,保护您的每一寸触感
  • 系统巡检脚本分享:守护服务器的“健康卫士”
  • 【系统架构设计师】操作系统 - 进程管理 ② ( 进程状态 | 三态模型 | 五态模型 | 进程状态 划分依据 | PCB 程序控制块 的 组织方式 )
  • JavaScript 网页设计案例:经典与创新的完美结合
  • 【第5章:深度生成模型— 5.1 变分自编码器(VAE)与生成对抗网络(GAN)的基础理论】
  • STM32——HAL库开发笔记19(串口中断接收实验)(参考来源:b站铁头山羊)
  • 第3节:回归实战【新冠人数预测】
  • 高效开发!使用Chrome对MoonBit生成的Wasm进行性能分析!
  • AI大模型(如GPT、BERT等)可以通过自然语言处理(NLP)和机器学习技术,显著提升测试效率
  • FacePoke详细使用指南:如何利用开源AI工具优化照片人物表情
  • vue和Django快速创建项目
  • eval 内置函数用法
  • 时间盲注作业
  • (前端基础)HTML(一)