Megosztás a következőn keresztül:


figyelő 1.0

Készítette: Mario Hewardt

Közzétéve: 2026. március 26.

listent letöltése macOS-hez (GitHub)

Introduction

Parancssori eszköz a macOS végrehajtható bináris fájljaihoz tartozó kódaláírási jogosultságok felderítésére és listázására. Támogatja a statikus vizsgálatot, a valós idejű folyamatfigyelést és a háttér démonműveletét.

listent rekurzívan ellenőrzi a könyvtárakat a végrehajtható bináris fájlok megkereséséhez, és kinyeri a kódaláírási jogosultságaikat. Biztonsági kutatók, fejlesztők és rendszergazdák számára készült, akiknek a macOS-alkalmazások által kért engedélyek naplózására vagy megértésére van szükségük.

Features

Alapvető képességek

  • Gyors vizsgálat: Intelligens szűrési és folyamatjelzőkkel hatékonyan bejárja a könyvtárfákat
  • Jogosultság kinyerése: a macOS codesign használatával kinyeri a jogosultságokat a bináris fájlokból
  • Rugalmas szűrés: Szűrés elérési utak és meghatározott jogosultsági kulcsok alapján, glob mintatámogatással
  • Több kimeneti formátum: Olvasható és strukturált JSON-kimenet
  • Több elérési út: Több könyvtár vizsgálata egyetlen parancsban
  • Kecses megszakítások: Tiszta megszakítás a Ctrl+C billentyűkombinációval

Működési módok

1. Statikus vizsgálati mód (alapértelmezett)

Fájlok és könyvtárak vizsgálata jogosultságok esetén:

# Scan default locations (/usr/bin and /usr/sbin)
listent

# Scan specific paths
listent /usr/bin /usr/sbin

# Filter by entitlement patterns
listent -e "com.apple.security.*"
listent -e "*network*" -e "*debug*"

# JSON output for automation
listent /usr/bin -e "*security*" --json

2. Valós idejű monitorozási mód

Új jogosultsági folyamatok figyelése:

# Monitor all new processes
listent monitor

# Monitor with custom polling interval
listent monitor --interval 0.5

# Monitor specific entitlements only
listent monitor -e "com.apple.security.network.*"

3. Démon mód

Folyamatos monitorozás futtatása az előtérben (teszteléshez vagy manuális démonművelethez hasznos):

# Run as daemon in foreground
listent daemon run

# Daemon with custom config file
listent daemon run --config /etc/listent/custom.toml

Egyéni konfigurációs fájlsablon (daemon.toml):

[daemon]
# How often to poll for new processes, in seconds (0.1 - 300.0)
polling_interval = 1.0
# Start automatically when loaded by launchd (RunAtLoad)
auto_start = true

[monitoring]
# Filesystem paths to scan for running process binaries.
# Empty list = monitor processes from all paths.
path_filters = ["/usr/bin", "/usr/sbin"]
# Entitlement patterns to match (glob syntax). Empty list = all entitlements.
# Examples: "com.apple.security.*", "*network*"
entitlement_filters = []

Lekérdezési naplók a következőkkel:

# View listent logs in real-time
log stream --predicate 'subsystem == "com.microsoft.sysinternals.listent"' --level info

# View recent logs
log show --predicate 'subsystem == "com.microsoft.sysinternals.listent"' --last 1h

# Filter for errors only
log show --predicate 'subsystem == "com.microsoft.sysinternals.listent" AND messageType == error' --last 24h

4. Háttér démonszolgáltatás

Futtassa a figyelést a launchd által kezelt állandó rendszerszolgáltatásként:

# Install and start daemon
sudo listent daemon install

# Check daemon status
listent daemon status

# View daemon logs
listent daemon logs
listent daemon logs --since 1h
listent daemon logs --since 30m
listent daemon logs --since "2025-01-15 10:00"
listent daemon logs --format json
listent daemon logs -f                    # Follow logs in real-time

# Stop daemon process
listent daemon stop

# Uninstall service
sudo listent daemon uninstall

Examples

Statikus vizsgálat

# Basic scan with progress (uses default /usr/bin and /usr/sbin)
listent

# Multi-directory scan with filtering
listent /usr/bin /usr/sbin -e "*security*"

# Find all network-related entitlements
listent -e "*network*" --json | jq '.results[].entitlements'

# Scan quietly (suppress warnings)
listent /usr/bin --quiet

Folyamatfigyelés

# Monitor all processes with 2-second intervals
listent monitor --interval 2.0

# Monitor only security-related entitlements
listent monitor -e "com.apple.security.*"

# Run as daemon with custom config
listent daemon run --config /etc/listent/daemon.toml

Démonkezelés

# Install daemon with default monitoring (requires sudo)
sudo listent daemon install

# Install with custom configuration file
sudo listent daemon install --config /path/to/config.toml

# View recent daemon activity
listent daemon logs --since 1h

# Check if daemon is running
listent daemon status

# Stop and remove daemon
listent daemon stop
sudo listent daemon uninstall

Konfiguráció

Parancssori beállítások

  • Elérési utak: Több elérési út is megadható pozícióargumentumként: listent /path1 /path2
  • Jogosultságszűrés: -e "pattern" támogatja a pontos egyezéseket és a globokat (*, ?, [])
  • Kimeneti formátum: --json vagy -j strukturált kimenet esetén az alapértelmezett érték az ember által olvasható
  • Csendes mód: --quiet vagy -q letiltja az olvashatatlan fájlokra vonatkozó figyelmeztetéseket
  • Monitorozás: listent monitor az alparancs valós idejű folyamatfigyelést tesz lehetővé
  • Monitorozási időköz: --interval SECONDS lekérdezési gyakoriság beállítása (0,1-300,0, alapértelmezett: 1,0)
  • Démon mód: listent daemon run háttér démonfolyamatként fut
  • Démonkezelés: listent daemon install|uninstall|status|stop|logs
  • Konfigurációs fájl: --config FILE vagy -c FILE megadja a démon konfigurációs elérési útját

Jogosultsági minták

# Exact match
-e "com.apple.security.network.client"

# Wildcard patterns
-e "com.apple.security.*"        # All Apple security entitlements
-e "*network*"                   # Any entitlement containing "network"
-e "*.debug.*"                   # Debug-related entitlements

# Multiple patterns (OR logic)
-e "com.apple.private.*" -e "*.debug.*"

Démonkonfiguráció

A démonbeállítások TOML-konfigurációs fájlon keresztül vannak konfigurálva:

  • Alapértelmezett hely: ~/.config/listent/daemon.toml
  • Egyéni elérési út: Használja --config a következővel daemon install

A konfiguráció módosításához szerkessze a konfigurációs fájlt, és indítsa újra a démont:

# Edit config
nano ~/.config/listent/daemon.toml

# Restart daemon
listent daemon stop
sudo listent daemon install

Példa démonkonfiguráció:

[daemon]
polling_interval = 1.0
auto_start = true

[monitoring]
path_filters = []
entitlement_filters = ["com.apple.security.*", "*network*"]

[logging]
level = "info"
subsystem = "com.microsoft.sysinternals.listent"
category = "daemon"

Hibaelhárítás

Ctrl+C Nem működik külső terminálokon

Ha a Ctrl+C billentyűkombináció nem szakítja meg a vizsgálatot Terminal.app vagy iTerm2-ben, akkor ez a macOS termináljelek kezelésével kapcsolatos probléma miatt van.

Megkerülő megoldás: A következőt hajtsa végre a listent futtatása előtt:

trap - INT

Ezzel eltávolítja a meglévő megszakítási csapdát, és visszaállítja az alapértelmezett SIGINT-viselkedést. Ezután a Ctrl+C billentyűkombinációnak a szokásos módon kell működnie.

Megjegyzés: Ez a probléma nem érinti a VS Code integrált terminálját.

Kimeneti formátumok

Ember által olvasható (alapértelmezett)

Found 2 binaries with 5 total entitlements:

/usr/bin/security:
  com.apple.private.platformsso.security: true

/usr/bin/nc:
  com.apple.security.network.client: true
  com.apple.security.network.server: true

Scan Summary:
  Scanned: 156 files
  Matched: 2 files
  Duration: 2.34s

JSON formátum

{
  "results": [
    {
      "path": "/usr/bin/security",
      "entitlements": {
        "com.apple.private.platformsso.security": true
      },
      "entitlement_count": 1
    }
  ],
  "summary": {
    "scanned": 156,
    "matched": 2,
    "duration_ms": 2340,
    "skipped_unreadable": 0
  }
}

Biztonság

Ha úgy véli, hogy biztonsági problémát talált, jelentse azt a projekt GitHub-adattárában ahelyett, hogy nyilvános problémát nyit meg.

JCD letöltése Linuxhoz és macOS-hez (GitHub)

Fut:

  • macOS