atomiczsec/Noradrenaline
GitHub: atomiczsec/Noradrenaline
一套面向 macOS 和 Linux 的高性能后渗透共享库集合,提供凭证访问、环境发现与信息枚举等模块化能力。
Stars: 29 | Forks: 4
# Noradrenaline 共享库模块
Noradrenaline 是一组高性能的后渗透(post-exploitation)共享库,专为在 macOS 和 Linux 端点上原生执行而设计。在 Poseidon 上,macOS 构建版本目前通过 `execute_library` 运行;公共 agent 暂不支持 Linux 构建版本,但其他 agent 可能已经支持。针对公共 agent 的 Linux 支持正在积极开发中。
Noradrenaline 是一组高性能的后渗透(post-exploitation)共享库,专为在 macOS 和 Linux 端点上原生执行而设计。在 Poseidon 上,macOS 构建版本目前通过 `execute_library` 运行;公共 agent 暂不支持 Linux 构建版本,但其他 agent 可能已经支持。针对公共 agent 的 Linux 支持正在积极开发中。
## 目录
[集合](#collection)
[社区](#community)
[凭证访问](#credential-access)
[发现](#discovery)
[执行](#execution)
[构建](#build)
[本地测试](#local-testing)
[模块 ABI](docs/module_abi.md)
## 集合
| **模块** | **用途** |
|------------|---------|
| **[ai_surface](collection/ai_surface/)** | 映射 macOS 和 Linux 开发者端点上的 AI 工具、AI agent 配置文件以及 MCP 配置文件,并提供有限的配置预览。 |
| **[terminal_history](collection/terminal_history/)** | 盘点当前用户的 shell 历史记录和终端记录器产物,提供有限的精确末尾预览,并支持可选的块读取。 |
## 凭证访问
| **模块** | **用途** |
|------------|---------|
| **[cloud_metadata_check](credential_access/cloud_metadata_check/)** | 探测本地的云实例元数据服务(IMDS),支持 AWS、Azure 和 GCP。除非在 `presence` 模式下运行,否则会报告提供商、上下文、IMDS 模式以及有限的身份片段。 |
## 发现
| **模块** | **用途** |
|------------|---------|
| **[app_count](discovery/app_count/)** | 从标准的 macOS `.app` 包路径或 Linux `.desktop` 启动器路径中统计唯一已安装的应用程序指标。 |
| **[ide_extensions](discovery/ide_extensions/)** | 从当前用户配置文件中枚举已安装的 VS Code、Cursor、Windsurf、VSCodium 和远程服务器 IDE 扩展,并进行有限的清单解析。 |
| **[mdm_policy_artifacts](discovery/mdm_policy_artifacts/)** | 对本地可观察的 macOS MDM 和 Linux 端点管理产物进行评分,以评估其加入状态或受管状态。 |
| **[native_env](discovery/native_env/)** | 列出环境变量或从 agent 进程中返回特定的环境变量。可用于验证模块 ABI 和检查执行上下文。 |
| **[netjoin_query](discovery/netjoin_query/)** | 报告主机名、操作系统版本,以及本地的 macOS/Linux 目录、域、工作组或领域的证据。 |
| **[os_version](discovery/os_version/)** | 收集 macOS 和 Linux 的产品、版本、内核、架构和安装时长等证据,相当于 Unix 下的 `win_version`。 |
| **[proxy_enum](discovery/proxy_enum/)** | 从环境变量、系统文件、包管理器设置以及浏览器策略/配置文件中枚举代理配置证据。 |
| **[wallpaper_enum](discovery/wallpaper_enum/)** | 枚举 macOS 的显示器壁纸路径和 Linux 的桌面壁纸配置证据,这些信息可能会暴露内部共享或受管资产。 |
## 执行
| **模块** | **用途** |
|------------|---------|
| **[firewall_rule](execution/firewall_rule/)** | 仅用于查询的 macOS/Linux 防火墙状态模块,用于获取可读的 PF、应用程序防火墙、nftables、iptables、ufw 和 firewalld 配置证据。 |
## 构建
每个模块目录都包含其各自的源码、`Makefile` 和模块 README。根目录的 `Makefile` 可用于构建整个模块目录。构建输出仅在本地生成,不会提交到 git。
为当前主机平台构建所有模块:
```
make build
```
为特定平台构建:
```
make build PLATFORM=mac
make build PLATFORM=linux
make build PLATFORM=both
```
简写目标:
```
make build-mac
make build-linux
make build-both
```
`macos` 目标需要 macOS 工具链和 `lipo`。`linux` 目标在可用时使用本地的 Linux 交叉编译器。`linux-docker` 目标使用 Debian 容器为 `linux/amd64` 和 `linux/arm64` 构建 `.so` 产物。
## 本地测试
使用 [tests/native_runner](tests/native_runner/) 加载已构建的 `.dylib` 或 `.so`,解析导出函数,并在不依赖 Mythic 的情况下使用类似 Poseidon 的参数调用它。
```
make -C tests/native_runner
tests/native_runner/build/native_runner \
discovery/native_env/build/native_env-macos-arm64.dylib \
get_env HOME
```
该运行器将模拟的 agent 路径作为 `argv[0]` 传递;用户参数从 `argv[1]` 开始。有关更多示例,请参阅 [tests/native_runner/README.md](tests/native_runner/README.md)。
Connect with me:
免责声明:本仓库的创建者和贡献者对因使用本仓库中包含的信息或代码而导致的任何损失、损害或后果不承担任何责任。使用本仓库即表示您承认并接受对自己的行为负全部责任。使用风险需自行承担。标签:StruQ, UML, 信息发现, 共享库, 凭据访问, 后渗透测试, 客户端加密, 数据泄露, 请求拦截