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

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

1.yara离线分析

安装yara:

bash 复制代码
sudo apt-get install -y yara

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

python 复制代码
#!/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 规则:

bash 复制代码
mkdir rules
python malware_yara_rules.py

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

bash 复制代码
yara -w malware_rules.yar image  # Scan 1 file
yara -w malware_rules.yar folder # Scan the whole folder

2.ClamAV离线分析

1、安装:

bash 复制代码
sudo apt-get install -y clamav

2、识别:

bash 复制代码
sudo freshclam      # Update rules
clamscan filepath   # Scan 1 file
clamscan folderpath # Scan the whole folder

3.YaraGen离线分析

1、下载YaraGen:

bash 复制代码
https://github.com/Neo23x0/yarGen

2、识别风险:

bash 复制代码
python3 yarGen.py --update
python3 yarGen.py --excludegood -m  ../../mals/

4.Loki离线分析

1、下载Loki

bash 复制代码
https://github.com/Neo23x0/Loki

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

bash 复制代码
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、从恶意软件二进制文件中提取混淆的字符串

bash 复制代码
floss malware.exe

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

bash 复制代码
floss --only stack tight -- suspicious.exe

3、不提取静态字符串

bash 复制代码
floss --no static -- backdoor.exe
相关推荐
云天徽上1 小时前
【数据可视化-21】水质安全数据可视化:探索化学物质与水质安全的关联
安全·机器学习·信息可视化·数据挖掘·数据分析
墨北x4 小时前
网络安全职业技能大赛Server2003
安全·web安全
ALe要立志成为web糕手4 小时前
create_function()漏洞利用
安全·web安全·网络安全·php·rce
半个西瓜.7 小时前
武装Burp Suite工具:xia SQL自动化测试_插件
安全·web安全·网络安全·安全威胁分析
IT科技那点事儿8 小时前
量子计算浪潮下的安全应对之法
安全·量子计算
神经毒素9 小时前
WEB安全--RCE--disable_function bypass
安全·web安全
FreeBuf_9 小时前
微软Entra新安全功能引发大规模账户锁定事件
安全·microsoft
Fanerma12110 小时前
来访登记二维码生成
大数据·安全
cainiao08060510 小时前
生物计算安全攻防战:从DNA存储破译到碳基芯片防御体系重构
安全·重构
追寻向上10 小时前
SQL注入:安全威胁的幽灵与防御体系的构建——从经典攻击到智能防护的演进
网络·sql·安全