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

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

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

  • 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

相关文章:

  • 国内外网络安全政策动态(2025年1月)
  • mysql中general_log日志详解
  • mysql索引为什么用B+树,不用二叉树
  • Spring系统学习——持续更新
  • MySQL的备份与还原
  • 项目BUG
  • 股指期货有什么常见的交易方式?
  • ChatGPT macOS 桌面应用让你的编程体验更上一层楼
  • AI问答-供应链管理-M2:战略分析模型汇总
  • spring boot单元测试
  • LeetCode刷题第7题【整数反转】---解题思路及源码注释
  • 网络基础 【UDP、TCP】
  • 什么是耐环境环形光源
  • 企业文件共享中的权限管理与安全风险防范
  • 蓝桥杯篇---实时时钟 DS1302
  • 传输层协议TCP (上)
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-什么是串口
  • zabbix 监控系统 配置钉钉告警
  • 浅聊MQ之Kafka与RabbitMQ简用
  • 基础篇07-空域滤波(中)--非线性平滑滤波
  • wordpress日期时间/seo好找工作吗
  • 全网推广代运营/应用关键词优化
  • 河南省住房城乡建设厅官方网站/谷歌chrome官网
  • 北京网站建设公司如何选/影视后期培训班一般要多少钱
  • 网站怎么做三个页面/推广软文范例
  • 网站做好后交接/wordpress免费网站