Hexkalibur/Narsil

GitHub: Hexkalibur/Narsil

Narsil 是一款纯 C 编写的 Windows 一次性入侵检测扫描器,通过七个模块检查驱动、rootkit、持久化、进程、内存、网络和事件日志来快速判断主机是否被入侵。

Stars: 1 | Forks: 0

# Narsil

Narsil

![Makefile CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/4f/4fa96c66dcfab03d9fe1f6152fcf7d8647b66d6673f0f8cd316772ceb0334c58.svg) ## 该项目仍处于初始阶段,需要多项改进!! 一个 Windows 安全扫描器。Narsil 只回答一个问题: *“我的机器现在是否已被入侵?”* 它仅使用原生 Windows API 运行一次性的深度分析, 没有任何繁重的外部依赖,且占用空间极小。它是纯扫描模式:检查 系统后即退出,不留下任何驻留进程。 ## 功能 Narsil 依次运行七个扫描模块,并将它们的发现 汇总到一份报告中: | 模块 | 检查内容 | |--------|----------------| | **kernel** | 驱动程序枚举 + Authenticode/目录签名检查(未签名、被篡改、匿名、非标准路径) | | **rootkit** | 通过交叉比对 `NtQuerySystemInformation` 与 Toolhelp 快照来检测隐藏进程 | | **persistence** | 注册表 Run/RunOnce 键、Winlogon `Userinit`/`Shell` 劫持,以及位于暂存路径中的 Win32 服务 | | **processes** | 已知的恶意名称、父子进程异常(Office 到 shell)、暂存路径、签名级别 | | **memory** | 已提交的私有 RWX 区域,这是注入 shellcode 的典型痕迹 | | **network** | 活动的 TCP/UDP 端点:被封锁的 IP、可疑端口、从暂存路径向外通信的进程 | | **events** | 最近的“安全/系统”事件日志条目:暴力破解、新用户/服务、日志清除 | 检查发现会被映射到对应的 MITRE ATT&CK 技术 ID。 ## 构建 需要适用于 Windows 的 C 工具链(MSVC 或 MinGW-w64)。 ``` make ``` 这将生成 `narsil.exe`。构建时会链接 `ws2_32`、`iphlpapi`、`wevtapi`、`psapi`、`wintrust`、`crypt32`、`advapi32`。 ## 用法 在提权的命令提示符中运行(需要管理员权限): ``` narsil.exe [-c ] [-r ] [-o ] [-v] [-h] ``` | 标志 | 含义 | |------|---------| | `-c ` | 配置文件(被封锁的 IP、可疑端口、模块开关) | | `-r ` | YARA 规则文件(预留给内存/文件匹配使用) | | `-o ` | 报告输出路径(默认:`narsil_report.md`) | | `-v` | 详细 / 调试输出 | | `-h` | 帮助 | ## 输出 每次运行都会生成三类产物: - `.md`:人类可读的报告(摘要、警报、证据表) - `.jsonl`:机器可读的警报,适配 SIEM - `_.csv`:完整的各模块证据列表 ## 配置 将 `ids.conf.example` 复制为 `ids.conf` 并使用 `-c` 传入。支持的 指令: ``` log_path # alert JSONL log destination blocked_ip # flag any connection to/from this IP suspicious_port # flag any endpoint on this port verbose # enable debug output # 跳过单个扫描模块(默认全部运行): no_kernel no_rootkit no_persistence no_process no_memory no_network no_events ``` ## 环境要求 - Windows (x64) - 管理员权限(Narsil 在启动时会启用 `SeDebugPrivilege`、 `SeLoadDriverPrivilege` 及相关权限)
标签:IP 地址批量处理, Web报告查看器, 主机入侵检测, 子域名变形, 安全意识培训, 客户端加密, 库, 应急响应, 恶意软件扫描, 端点可见性