VoidAccess
提出一个问题,VoidAccess 便并行搜索 12+ 个 Tor 搜索引擎、GitHub 与安全订阅源,然后返回可供 STIX、MISP 或 Sigma 使用的行动者、钱包、泄露凭证和 IOCs。Open so
AI 翻译
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Security alerts for your Mac, delivered to Telegram: remote access, persistence, tampering and posture changes, watched by a root daemon and Endpoint Security.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Security alerts for your Mac, delivered to Telegram.
English · Tiếng Việt
MacSentry watches a Mac for remote access, persistence, tampering and security posture changes, and sends each finding to Telegram as it happens, so the record leaves the machine before anyone can clean it up. It is built for people who look after their own Mac, or a few machines, and want to know when something changes without running a full EDR stack.
[!NOTE] The app is available in English and Vietnamese (it follows the system language, or pick one in Settings). Telegram alerts from the daemon are still in Vietnamese; help translating them is welcome (see Contributing).
sudoers, PAM, authorized_keys, shell rc files, with diffs of
what changed and secrets masked.curl | sh and
disabling SIP, Gatekeeper or the firewall./etc/macsentry.agents.kill -9 is reported, the log is append-only, and an optional heartbeat lets an outside service tell you
when the Mac goes quiet.See docs/detections.md for the full list.
| Events | Connection history |
|---|---|
| Trusted IPs | Settings |
Screenshots use sample data and documentation IP ranges.
flowchart LR
ES["macsentry-es<br/>(root, Endpoint Security<br/>via eslogger)"] -- spool --> D
D["macsentryd<br/>(root LaunchDaemon)"] --> LOG[("/var/log/macsentry.log<br/>append-only")]
D -- shared scan --> APP["MacSentry.app<br/>(menu bar, per user)"]
APP -. watches .-> D
D --> TG(["Telegram bot"])
APP --> TG
D -. heartbeat .-> HC(["Healthchecks-style<br/>monitor (optional)"])
| Component | Runs as | Role |
|---|---|---|
MacSentry.app | user (LaunchAgent, restarted if killed) | Remote access popups, screen lock/unlock, camera and microphone, sleep; history, trusted IPs, event viewer and settings. |
macsentryd | root (LaunchDaemon, from boot) | Most detections, the append-only log, Telegram delivery, the daily report and the heartbeat. |
macsentry-es | root (LaunchDaemon, needs Full Disk Access) | Reads Endpoint Security events through /usr/bin/eslogger and hands them to the daemon. It never holds the Telegram token. |
More detail is in docs/architecture.md.
MacSentry is built from source.
git clone https://github.com/vuminhhoa/macsentry.git
cd MacSentry
./build.sh # builds and installs ~/Applications/MacSentry.app, then starts it
daemon/install.sh --auto): macOS asks for an
administrator password once, no Terminal needed. If you cancel, click Install Now under
Monitoring Components./usr/local/libexec/macsentry-es and /usr/local/libexec/macsentryd:
System Settings → Privacy & Security → Full Disk Access → + → press ⌘⇧G
and paste the path. The daemon reminds you on Telegram until this is done.For a separate daemon bot (recommended, see Security model), a heartbeat URL, or to turn off
process execution monitoring, run sudo ./daemon/install.sh --reconfigure.
[!TIP] If you have an Apple Development certificate in your keychain,
build.shsigns with it, so macOS keeps Local Network and Full Disk Access permissions across rebuilds. Otherwise the binaries are signed ad hoc and the permissions must be granted again after each rebuild.
The app checks GitHub for a new release once a day and notifies you. Settings → Updates → Update Now runs
git pull and ./build.sh in the source folder, reinstalls the daemon (one password prompt), replaces the app and
restarts it. Your settings and /etc/macsentry.* are kept. To do it by hand:
git pull
./build.sh && sudo ./daemon/install.sh
./uninstall.sh # removes the daemon (asks for sudo) and the app; keeps your data and the log
./uninstall.sh --purge # also removes history, trusted IPs and the Telegram settings
The log at /var/log/macsentry.log is append-only by design. Remove it with
sudo chflags nosappnd /var/log/macsentry.log && sudo rm /var/log/macsentry.log.
| File | Purpose |
|---|---|
/etc/macsentry.conf | Daemon settings (root only): TOKEN, CHAT, HEARTBEAT_URL, ES_EXEC, FIM |
/etc/macsentry.trusted | Hosts a shell may connect to without a reverse shell alert |
/etc/macsentry.agents | Extra agents to watch, on top of the built-in catalog |
/etc/macsentry.allow | Regex allowlist for command alerts from the Endpoint Security helper |
~/Library/Application Support/MacSentry/ | App settings, connection history and trusted IPs (mode 0700) |
Every option is described in docs/configuration.md.
MacSentry is a tripwire, not a shield. It tells you quickly and from outside the machine that something changed; it does not block anything.
MacSentry has no server of its own and sends no analytics. Alerts go only to the Telegram chat you configure.
Alert text can include host names, user names, IP addresses, command lines and (masked) file diffs, so treat
the chat as sensitive. To describe remote peers, the daemon runs whois and reverse DNS for their IPs, which
sends those IPs to the relevant registries and resolvers. The heartbeat, if set, is a plain request to the URL
you choose.
Measured on a busy development Mac (IDE, builds, many processes):
| Component | CPU (one core) | Notes |
|---|---|---|
macsentryd | ~0.4-0.8% | Event driven; the earlier shell version used ~4.5% |
macsentry-es + eslogger | ~2% | Mostly exec events; set ES_EXEC=0 to turn them off |
MacSentry.app | ~0.2% | Reuses the daemon's scan; camera and microphone through listeners |
Both root jobs run with ProcessType=Background and LowPriorityIO, so macOS throttles them in favour of
your work. Alerts may arrive a few seconds late while the machine is busy.
./build.sh --no-install # build into build/ without touching the installed app
ARCHS="arm64 x86_64" ./build.sh --no-install # universal build, as CI does
Run the daemon without root and without sending anything:
DRYRUN=1 CONF=./test.conf LOG=./test.log STATE=./state PUB_DIR=./pub build/macsentryd
Replay recorded Endpoint Security events through the helper:
STATE=./state build/macsentry-es --replay < events.jsonl
Inspect what the daemon's readers see, without sending anything: sudo /usr/local/libexec/macsentryd --check.
The source layout and how to add a new check are described in docs/architecture.md.
Write-ups on how MacSentry is built and why, on vuminhhoa.com:
Bug reports, false positive reports, new detections and translations are welcome. Please read CONTRIBUTING.md first, and report vulnerabilities privately as described in SECURITY.md. This project follows the Contributor Covenant.
MIT © 2026 Vũ Minh Hoà