Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
machscope — Explorador de IPC de macOS, launchd, Mach-O y relaciones de confianza — herramienta forense nativa de terminal sin dependencias | Kitploit
Herramientas/GitHubGitHub/m10ust/machscope
ReconocimientoAnálisis de VulnerabilidadesIngeniería InversaAnálisis ForenseRecopilación de InformaciónAnálisis de MalwareForensia DigitalAnálisis de BinariosInteligencia de AmenazasRespuesta a Incidentes
GitHubm10ust/machscope
140hace 20 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

machscope

Explorador de IPC de macOS, launchd, Mach-O y relaciones de confianza — herramienta forense nativa de terminal sin dependencias

Ver Repositorio
Compartir

machscope

machscope es un explorador de macOS nativo de terminal que convierte procesos, trabajos de launchd, servicios Mach, bundles, firmas, entitlements y enlaces Mach-O en un único grafo interrogable.

Existe para responder a una pregunta simple de forma extraordinariamente eficaz:

¿A qué está realmente conectado este proceso, servicio, binario o bundle?

Correlaciona procesos, ejecutables, trabajos de launchd, servicios Mach, bundles, servicios XPC embebidos, firmas de código, entitlements, enlaces Mach-O y hallazgos de confianza/anomalías en una sola vista.

Si Activity Monitor, ps, lsof, launchctl, codesign y otool tuvieran un hijo paranoico y amigable para operadores, este sería.

Por qué existe esto

Los internals de macOS son elegantes, pero la verdad está dispersa.

Para entender un proceso sospechoso, a menudo terminas saltando entre:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • Info.plist del bundle
  • plists de launchd
  • tus propias notas y suposiciones

machscope reduce ese flujo de trabajo a una única herramienta de terminal.

Está pensado para:

  • triaje de seguridad
  • caza de malware
  • investigación de persistencia
  • exploración de servicios launchd y Mach
  • depurar comportamientos extraños de macOS
  • entender cómo está realmente ensamblada una app

Qué hace

Dado un PID, ruta, etiqueta de launchd o nombre de servicio Mach, machscope puede correlacionar:

  • metadatos del proceso desde ps
  • ruta del ejecutable y contexto de archivos abiertos desde lsof
  • estado de launchd y pistas de etiquetas desde launchctl
  • metadatos del plist de launchd y MachServices declarados
  • identidad del bundle y servicios .xpc embebidos
  • identificador de firma de código, team ID, cadena de autoridad y pistas de runtime
  • datos de entitlements desde codesign
  • cabeceras Mach-O, dylibs enlazados, load commands y rpaths desde otool
  • nodos / aristas del grafo para exportación posterior
  • hallazgos de confianza con evidencia

No pretende observar todas las relaciones XPC vivas. Algunas relaciones están declaradas, no observadas. Esa honestidad es intencional.

¿Por qué machscope y no las herramientas macOS puras?

  • ps muestra el proceso, no la cadena de propiedad
  • launchctl muestra el trabajo, no el contexto completo del binario/bundle/confianza
  • codesign muestra la identidad, no las relaciones en runtime
  • otool muestra el enlace, no la exposición de servicios launchd o Mach
  • machscope correlaciona todo ello en una sola pasada

Características

  • Python sin dependencias
    • utiliza solo la biblioteca estándar de Python
  • Nativo de terminal
    • salida legible para humanos primero, JSON cuando lo quieras
  • Resolución de objetivos flexible
    • inspecciona un PID, ejecutable, app bundle, etiqueta de launchd o servicio Mach
  • Pivotes del resolvedor --follow
    • los objetivos bundle se resuelven a su ejecutable
    • los servicios Mach se resuelven al trabajo de launchd y ejecutable que los declara
    • las etiquetas de launchd pivotean al PID vivo cuando está presente
  • Puntuación de confianza/anomalías
    • saca a la superficie rarezas sin pretender que toda rareza sea malware
  • Modelo de grafo simple
    • graph.nodes y graph.edges están diseñados para futuros flujos de trabajo TUI, renderer o diff

Comandos

root@kitploit:~
./machscope.py inspect <pid|path|launchd-label|mach-service>
./machscope.py inspect <target> --follow
./machscope.py inspect <target> --json
./machscope.py scan --limit 40 --min-score 1
./machscope.py services [filter]

Ejemplos

Inspeccionar un proceso vivo

root@kitploit:~
./machscope.py inspect 1
./machscope.py inspect 57382

Inspeccionar una app o binario

root@kitploit:~
./machscope.py inspect /System/Applications/Calculator.app --follow
./machscope.py inspect /usr/libexec/remoted

Inspeccionar un trabajo de launchd

root@kitploit:~
./machscope.py inspect com.apple.WindowServer --follow
./machscope.py inspect ai.openclaw.gateway --follow

Inspeccionar un servicio Mach

root@kitploit:~
./machscope.py inspect com.apple.dnssd.service --follow

Escanear rarezas

root@kitploit:~
./machscope.py scan --limit 40 --min-score 1
./machscope.py scan --limit 10 --min-score 6

Explorar servicios declarados

root@kitploit:~
./machscope.py services
./machscope.py services mDNS
./machscope.py services com.apple

Ejemplo de salida

root@kitploit:~
Target: com.apple.dnssd.service [mach-service follow]
Resolved via: mach-service-launchd
Executable: /usr/sbin/mDNSResponder
Launchd: com.apple.mDNSResponder.reloaded
Plist: /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Signature: apple-platform team=not set id=com.apple.mDNSResponder
Mach services: com.apple.dnssd.service, com.apple.mDNSResponder.control, com.apple.mDNSResponder.log_utility
Entitlements: 0
Linked dylibs: 25  RPATHs: 0
Trust: score=1 verdict=ordinary
Findings:
- [LOW] T012 Odd launchd label suffix

Salida JSON

inspect --json devuelve un objeto estructurado diseñado para scripting y futuros trabajos de UI.

Estructura de nivel superior:

  • target
  • target_resolution
  • process
  • binary
  • bundle
  • launchd
  • trust
  • graph.nodes
  • graph.edges

El grafo es intencionadamente simple para poder alimentar:

  • una futura TUI
  • un renderer
  • un modo diff
  • otras herramientas

Cómo funciona --follow

--follow es donde machscope empieza a sentirse menos como un volcador de metadatos y más como un explorador.

Añade pivotes del resolvedor como:

  • objetivo bundle → ejecutable
  • servicio Mach → trabajo de launchd declarante → ejecutable
  • etiqueta de launchd → estado de launchctl print → PID vivo cuando esté disponible

Eso importa porque los artefactos de macOS más interesantes a menudo no son la cosa literal que escribiste, sino lo que hay detrás.

Hallazgos de confianza

machscope incluye una capa simple de confianza/anomalías.

Ejemplos de cosas que puede sacar a la superficie:

  • binarios faltantes detrás de entradas de persistencia
  • objetivos de ejecución escribibles por el usuario
  • entitlements sensibles en código que no es de Apple
  • discrepancias entre etiqueta de launchd e identidad del bundle
  • sufijos de launchd extraños como .reloaded
  • rutas con aspecto de sistema que no validan como se espera

Esto no es un motor de veredictos de malware. Es una forma de sacar pistas a la superficie, reducir puntos ciegos y facilitar la interrogación de cadenas sospechosas.

Decisiones de diseño

Sin dependencias por diseño

La primera versión usa intencionadamente:

  • biblioteca estándar de Python
  • solo herramientas nativas de macOS

Las herramientas envueltas incluyen:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • file

Eso mantiene la herramienta fácil de clonar, inspeccionar y ejecutar en un sistema más o menos estándar.

Honesto sobre la visibilidad

Algunas relaciones están declaradas, no observadas.

Por ejemplo:

  • los plists de launchd pueden declarar servicios Mach
  • los bundles pueden revelar servicios XPC embebidos
  • pero las herramientas públicas no siempre exponen limpiamente las relaciones vivas cliente/servidor XPC

machscope prefiere ser explícito antes que fingir certeza.

Requisitos

  • macOS
  • Python 3
  • acceso a herramientas nativas como ps, lsof, launchctl, codesign, otool y file

Privilegios

Ejecútalo primero como usuario normal.

Eso suele ser suficiente para obtener respuestas útiles.

Sin privilegios elevados, algunos detalles pueden ser parciales, especialmente en torno a:

  • lsof
  • launchctl
  • detalles de firma de código en ciertos objetivos

Si escalas privilegios, hazlo deliberadamente.

Casos de uso recomendados

  • «¿Qué es exactamente lo que posee este servicio Mach?»
  • «¿Es este trabajo de launchd normal, obsoleto o roto?»
  • «¿Por qué este proceso tiene como padre a launchd pero no está donde esperaba?»
  • «¿Qué entitlements tiene realmente este helper?»
  • «¿Está este app bundle ocultando servicios XPC embebidos?»
  • «¿Por qué este proceso resulta sospechoso?»

Objetivos no perseguidos

machscope no intenta ser:

  • un EDR completo
  • un sistema de telemetría de kernel en vivo
  • un observador XPC perfecto
  • una app GUI
  • un framework gigante

Es una herramienta local afilada para hacer legibles los internals de macOS.

Estado

En fase temprana, pero ya útil.

La salida actual y el modelo de grafo están deliberadamente formados para que las versiones futuras puedan añadir:

  • exploración TUI
  • modo diff
  • integraciones de exportación/renderizado
  • reglas de confianza más ricas
  • mejor recorrido del grafo entre objetivos

--

Descargar herramienta