Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Loki-RS — 🐍 高性能、多线程的 YARA 和 IOC 扫描器 | Kitploit
工具/GitHubGitHub/neo23x0/loki-rs
危害指标 (IOC) 管理内存取证漏洞分析取证分析恶意软件分析数字取证威胁情报入侵检测事件响应日志分析
GitHubneo23x0/loki-rs

Loki-RS

🐍 高性能、多线程的 YARA 和 IOC 扫描器

3493128天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

Loki RS Logo

Loki-RS

用 Rust 重写的 Loki。高性能、多线程的单一二进制 YARA 和 IOC 扫描器。

状态:Beta。可用,但仍在积极开发中。

特性

  • 文件和进程内存的 YARA 扫描 (yara-x)
  • IOC 匹配(MD5/SHA1/SHA256 哈希、文件名模式、C2 指标)
  • 可配置线程数的多线程扫描
  • 归档文件扫描(ZIP)
  • 交互式 TUI,实时统计与控制
  • 通过 syslog 远程日志 (UDP/TCP) (SYSLOG/JSON)
  • 生成含详细结果的 HTML 报告
  • 可配置的评分阈值
  • 智能过滤(默认跳过 /proc、/sys、已挂载驱动器)
  • 幻数头检测
  • JSONL 输出,便于日志摄入

macOS 进程扫描

macOS 上的进程内存扫描是尽力而为的,通常需要调试授权或高权限。如果没有这些权限,Loki-RS 仍会扫描文件,但无法读取大多数进程内存。如有需要,可使用 --no-procs 跳过进程扫描。

Linux 进程扫描

在 Linux 上,Loki-RS 在读取 /proc/<pid>/mem 之前会跳过设备支持的和内核特殊的进程映射。这避免了某些驱动管理的 VMA 已知的不稳定性,同时保留正常的匿名映射、堆/栈映射和常规文件支持的内存扫描。如果仍遇到环境特定的问题,可使用 --no-procs 禁用进程扫描。

安装

从 发布页面 下载对应平台的预编译二进制文件。

root@kitploit:~
# 解压
tar -xzvf loki-linux-*.tar.gz
cd loki-linux-*

# 更新签名(推荐)
./loki-util update

# 运行
sudo ./loki --help

签名随版本附带,但很快会过时。运行 loki-util update 可获取最新的 YARA-Forge Core 规则。

签名

Loki-RS 使用 YARA Forge 作为默认签名来源。Loki-RS 附带并更新的是 Core 规则集(高精度、低误报、优化性能)。如需更广的覆盖,可从 YARA Forge 替换为 Extended 或 Full 规则集。

signatures/iocs/ 中的 IOC 文件作为可选的本地/自定义内容,仍然受支持。

使用方法

root@kitploit:~
# 基本扫描(默认启用 TUI)
sudo ./loki

# 扫描指定文件夹
sudo ./loki --folder /tmp

# 禁用 TUI,使用标准命令行输出
sudo ./loki --no-tui

常见场景

root@kitploit:~
# 扫描挂载的镜像(跳过进程扫描,使用所有核心)
sudo ./loki --no-procs --folder ~/image1 --threads 0

# 慢速谨慎扫描(限制 CPU 使用率,单线程)
sudo ./loki --cpu-limit 60 --threads 1

# 扫描并发送日志到远程 syslog
sudo ./loki --remote syslog-host.internal:514 --remote-proto udp

截图

Loki Startup

Loki Interrup Menu

命令行选项

扫描目标

选项默认值描述
-f, --folder <PATH>/要扫描的文件夹。包含空格的路径请用引号括起来,例如 -f "J:\SteamLibrary\steamapps\common\SpaceCraft beta"

扫描控制

输出选项

调优

信息与调试

排除文件和文件夹

Loki-RS 提供了多种排除文件和文件夹的机制。

内置自动排除

默认情况下,Loki-RS 自动排除:

系统目录 (Linux/macOS):

  • /proc, /dev, /sys/kernel/debug, /sys/kernel/slab, /sys/kernel/tracing, /sys/devices
  • /run, /var/run

云存储目录(除非使用了 --scan-all-drives):

  • OneDrive, Dropbox, Google Drive, iCloud, Box, Nextcloud, pCloud, MEGA, Seafile, ownCloud 等

网络和挂载驱动器(除非使用了 --scan-all-drives):

  • NFS, CIFS/SMB, SSHFS, WebDAV 挂载点
  • /media, /volumes 下的外部介质

程序目录:

  • Loki-RS 自动排除自己的目录,以防止扫描自身

命令行排除选项

基于哈希的误报排除

你可以通过哈希排除已知正常的文件。这对于白名单化触发误报的合法文件很有用。

设置:

  1. 在 signatures/iocs/ 目录下创建一个文件名同时包含 hash 和 falsepositive 的文件 例如:hash-falsepositive-custom.txt

  2. 添加哈希(MD5, SHA1 或 SHA256)及可选描述:

root@kitploit:~
# 格式:HASH;描述
d41d8cd98f00b204e9800998ecf8427e;空文件 - 已知正常
a7f5f35426b927411fc9231b56382173;合法系统工具

匹配这些哈希的文件在扫描中会被静默跳过。

文件名模式误报排除

当向 signatures/iocs/filename-iocs.txt 添加文件名 IOC 时,可以在第三列指定误报排除的正则表达式:

root@kitploit:~
# 格式:REGEX;SCORE;FALSE_POSITIVE_REGEX
#
# 匹配所有 .ps1 文件,但排除 SysInternals 目录中的文件
(?i)\\procdump(64)?\.(exe|zip);50;(?i)(SysInternals\\)

如果文件同时匹配主模式和误报正则表达式,则不会报告。

配置文件排除

config/excludes.cfg 文件支持基于正则表达式的路径排除:

root@kitploit:~
# 排除系统目录
^/proc/.*
^/dev/.*
^/sys/.*

# 排除临时文件
.*\.tmp$
.*\.temp$
.*\.swp$

# 排除特定目录
.*node_modules.*
.*/\.git/.*

注意: 路径排除模式通过正则表达式与完整文件路径进行匹配。以 # 开头的行是注释。

示例

root@kitploit:~
# 扫描但包含所有驱动器(网络、云、挂载)
sudo ./loki --scan-all-drives

# 扫描所有文件类型,不仅限于可执行文件和脚本
sudo ./loki --scan-all-files

# 只扫描小文件(小于10MB)
sudo ./loki --max-file-size 10000000

# 跳过进程扫描(适用于挂载镜像)
sudo ./loki --no-procs --folder /mnt/image

TUI 模式

终端界面默认启用,提供扫描期间的实时监控。

root@kitploit:~
sudo ./loki --folder /path/to/scan

Loki in Action

Loki TUI Screenshot

HTML 报告

Loki-RS 在每次扫描后自动生成一份带样式的 HTML 报告。报告与 JSONL 日志文件一同生成,提供所有发现的可视摘要。

报告包含:

  • 扫描配置和运行时统计
  • 按严重程度分组(警报、警告、通知)的颜色编码发现
  • 文件元数据(哈希、时间戳、大小)
  • YARA 规则匹配(含描述和匹配字符串)
  • IOC 匹配详情(含参考来源)

Loki HTML Report

HTML 报告与 JSONL 输出使用相同的基本文件名(例如 loki_hostname_2025-01-08.html)。要禁用报告生成,请使用 --no-html。

从 JSONL 文件生成 HTML 报告

你可以使用 loki-util 从现有的 JSONL 文件生成 HTML 报告:

root@kitploit:~
# 从单个 JSONL 文件生成 HTML 报告
./loki-util html --input scan_results.jsonl --output report.html

# 从多个 JSONL 文件生成合并的 HTML 报告
./loki-util html --input "*.jsonl" --combine --output combined_report.html

# 使用通配符模式匹配多个文件
./loki-util html --input "/path/to/scans/*.jsonl" --combine --output combined.html

选项:

  • --input <file|glob> - 输入的 JSONL 文件或通配符模式(必填)
  • --output <file.html> - 输出的 HTML 文件(可选,默认使用输入文件名加 .html 后缀)
  • --combine - 将多个 JSONL 文件合并到一个报告中(按主机名分组发现)
  • --title <str> - 覆盖报告标题
  • --host <str> - 覆盖报告中的主机名

合并报告模式适用于将来自多个主机或时间段的扫描结果聚合到单个视图中,发现按源主机名分组。

从源码构建

root@kitploit:~
git clone https://github.com/Neo23x0/Loki-RS.git
cd Loki-RS
cargo build --release
./target/release/loki-util update
sudo ./target/release/loki

需要 Rust 工具链。跨平台编译请参阅 docs/BUILD.md。

文档

  • 构建指南
  • 评分计算
  • 奇偶矩阵
  • 排除文件和文件夹

关于

Loki RS 是一个副项目。它是一个快速、单一二进制扫描器,专为实用的分类和实验而构建,随着想法被尝试和移除,它可能会快速变化。

支持是社区式的,尽力而为——没有 SLA,没有保证的响应时间,也不保证每个边缘情况都被完美处理。如果在生产环境中运行它,请牢记这一点。

对于需要可预测支持和更广泛、经过良好测试的功能集的企业环境和应急响应工作,Nextron Systems 维护着 THOR(以及 THOR Lite)。THOR 是专业扫描器,具有广泛的人工制品覆盖范围、更多模块和格式以及供应商支持。THOR Lite 是免费的入门版本,范围有所减少。

许可证

GNU General Public License v3.0。见 LICENSE。

Copyright (c) 2025 Florian Roth

下载工具
选项默认值描述
--no-procsfalse跳过进程内存扫描
--no-fsfalse跳过文件系统扫描
--no-archivefalse跳过归档文件内部扫描 (ZIP)
--scan-all-drivesfalse扫描所有驱动器,包括挂载/网络/云盘
--scan-all-filesfalse扫描所有文件,不论扩展名/类型
选项默认值描述
-l, --log <FILE>auto纯文本日志文件
--no-logfalse禁用纯文本日志输出
-j, --jsonl <FILE>autoJSONL 输出文件
--no-jsonlfalse禁用 JSONL 输出
--no-htmlfalse禁用 HTML 报告生成
--no-tuifalse禁用 TUI,使用标准命令行输出
-r, --remote <HOST:PORT>none远程 syslog 目标
-p, --remote-proto <PROTO>udp远程协议 (udp/tcp)
--remote-format <FMT>syslog远程格式 (syslog/json)
选项默认值描述
--alert-level <SCORE>80警报阈值
--warning-level <SCORE>60警告阈值
--notice-level <SCORE>40通知阈值
--max-reasons <NUM>2每个发现最多显示的匹配原因数
-m, --max-file-size <BYTES>64000000最大文件扫描大小 (64MB)
--yara-timeout <SECONDS>10每个文件或进程内存缓冲区的最大 YARA 扫描时间(最低:1秒)
-c, --cpu-limit <PERCENT>100CPU 利用率限制 (1-100)
--threads <NUM>-2线程数 (0=全部,-1=全部-1,-2=全部-2)
选项默认值描述
--version-显示版本并退出
-d, --debugfalse显示调试输出
--tracefalse显示详细跟踪输出
--show-access-errorsfalse显示文件/进程访问错误
选项描述
--scan-all-drives包含挂载驱动器、网络驱动器和云存储
--scan-all-files扫描所有文件,不论文件类型/扩展名(默认只扫描相关文件类型)
-m, --max-file-size <BYTES>跳过大于此大小的文件(默认:64MB)
--no-procs完全跳过进程内存扫描
--no-fs完全跳过文件系统扫描
--no-archive跳过归档文件内部扫描 (ZIP)
键操作
q退出
p暂停/继续
s跳过当前项目
t切换线程覆盖层
+ / -调整 CPU 限制
方向键滚动日志