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
AgentSmith-HIDS — Por Kprobe technology Sistema de Detección de Intrusiones Basado en Host de Código Abierto (HIDS), de E_Bwill. | Kitploit
Herramientas/GitHubGitHub/ebwi11/agentsmith-hids
Escalada de PrivilegiosReconocimientoSeguridad de ContenedoresInteligencia de AmenazasDetección de IntrusionesRespuesta a IncidentesAnálisis de DNSArchived
GitHubebwi11/agentsmith-hids

AgentSmith-HIDS

Por Kprobe technology Sistema de Detección de Intrusiones Basado en Host de Código Abierto (HIDS), de E_Bwill.

Ver Repositorio
602163hace 5 añosRevisado por Kitploit

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 →
Compartir

AgentSmith-HIDS

                        --El nombre de este proyecto fue inspirado por la película - The Matrix

License Project Status: Active – The project has reached a stable, usable state and is being actively developed.

English | 简体中文

ESTE REPO ESTÁ ANTIGUO

VERSIÓN DE LANZAMIENTO: https://github.com/bytedance/Elkeid

Acerca de AgentSmith-HIDS

Técnicamente, AgentSmith-HIDS no es un Sistema de Detección de Intrusiones Basado en Host (HIDS) debido a la falta de un motor de reglas y función de detección. Sin embargo, puede ser utilizado como un 'Agente de Recopilación de Información del Host' de alto rendimiento como parte de su propia solución HIDS. La exhaustividad de la información que puede ser recopilada por este agente fue una de las métricas más importantes durante el desarrollo de este proyecto, por lo que fue construido para funcionar en la pila del kernel y lograr una gran ventaja en comparación con aquellos que funcionan en la pila de usuario, como:

  • Mejor rendimiento: La información necesaria se recopila en la pila del kernel para evitar acciones suplementarias adicionales como el recorrido de '/proc'; y para mejorar el rendimiento del transporte de datos, los datos recopilados se transfieren a través de RAM compartida en lugar de netlink.
  • Difícil de ser evadido: La recopilación de información se realiza mediante un controlador de kernel diseñado específicamente, lo que hace casi imposible evadir la detección de software malicioso como rootkits, que pueden ocultarse deliberadamente.
  • Fácil de integrar: AgentSmith-HIDS fue construido para integrarse con otras aplicaciones y puede ser utilizado no solo como una herramienta de seguridad, sino también como una buena herramienta de monitoreo, o incluso un buen detector de sus activos. El agente es capaz de recopilar usuarios, archivos, procesos y conexiones de Internet para usted, así que imagine cuando lo integre con CMDB, podría obtener un mapa completo que consiste en su red, host, contenedor y negocio (incluso dependencias). ¿Qué tal si también tiene a mano una herramienta de auditoría de bases de datos? El mapa se puede extender para contener la relación entre su base de datos, usuario de base de datos, tablas, campos, aplicaciones, red, host y contenedores, etc. Pensando en la posibilidad de integración con sistemas de detección de intrusiones de red y/o inteligencia de amenazas, también se podría lograr una mayor trazabilidad. Nunca pasa de moda.
  • Pila del kernel + Pila de usuario: AgentSmith-HIDS también proporciona un módulo de pila de usuario, para extender aún más la funcionalidad cuando se trabaja con el módulo de pila del kernel.

Principales capacidades de AgentSmith-HIDS:

  • El módulo de pila del kernel engancha los comportamientos de execve, connect, inyección de procesos, creación de archivos, consulta DNS, carga de LKM a través de Kprobe, y también es capaz de monitorear contenedores siendo compatible con Linux namespace.
  • El módulo de pila de usuario utiliza funciones de detección incorporadas que incluyen consultas de Lista de usuarios, Lista de puertos en escucha, Lista de RPM del sistema, Tareas programadas
  • AntiRootkit, De: Tyton , por ahora añade las funciones PROC_FILE_HOOK, SYSCALL_HOOK, LKM_HIDDEN, INTERRUPTS_HOOK, pero solo funciona en Kernel > 3.10.
  • Monitoreo de cambios de credenciales (excepto sudo/su/sshd)
  • Monitoreo de inicio de sesión de usuario

Escenarios/métodos de uso de AgentSmith-HIDS (por añadir)

  • Cómo detectar una shell inversa con AgentSmith HIDS

Acerca de la compatibilidad con la versión del Kernel

  • Kernel > 2.6.25
  • AntiRootKit > 3.10

Acerca de la compatibilidad con Contenedores

OrigenNombre del nodo
Hosthostname
Dockernombre del contenedor
k8snombre del pod

Composición de AgentSmith-HIDS

  • Módulo de pila del kernel (LKM) Engancha funciones clave a través de Kprobe para capturar la información necesaria.
  • Módulo de pila de usuario Recopila datos capturados por el módulo de pila del kernel, realiza el procesamiento necesario y lo envía a Kafka; Mantiene el envío de paquetes de heartbeat al servidor para que se pueda identificar la integridad del proceso; Ejecuta comandos recibidos del servidor.
  • Servidor del Agente(Opcional) Envía comandos al módulo de pila de usuario y monitorea el estado del módulo de pila de usuario.

Hook de Execve

Logrado enganchando sys_execve()/sys_execveat()/compat_sys_execve()/compat_sys_execveat(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"59",
    "run_path":"/tmp",
    "exe":"/opt/ltp/testcases/bin/growfiles",
    "argv":"growfiles -W gf26 -D 0 -b -i 0 -L 60 -u -B 1000b -e 1 -r 128-32768:128 -R 512-64000 -T 4 -f gfsmallio-35861 -d /tmp/ltp-Ujxl8kKsKY ",
    "pid":"35861",
    "ppid":"35711",
    "pgid":"35861",
    "tgid":"35861",
    "comm":"growfiles",
    "nodename":"test",
    "stdin":"/dev/pts/1",
    "stdout":"/dev/pts/1",
    "sessionid":"3",
    "sip":"192.168.165.1",
    "sport":"61726",
    "dip":"192.168.165.128",
    "dport":"22",
    "sa_family":"1",
    "pid_tree":"1(systemd)->1384(sshd)->2175(sshd)->2177(bash)->2193(fish)->35552(runltp)->35711(ltp-pan)->35861(growfiles)",
    "tty_name":"pts1",
    "socket_process_pid":"2175",
    "socket_process_exe":"/usr/sbin/sshd",
    "SSH_CONNECTION":"192.168.165.1 61726 192.168.165.128 22",
    "LD_PRELOAD":"/root/ldpreload/test.so",
    "user":"root",
    "time":"1579575429143",
    "local_ip":"192.168.165.128",
    "hostname":"test",
    "exe_md5":"01272152d4901fd3c2efacab5c0e38e5",
    "socket_process_exe_md5":"686cd72b4339da33bfb6fe8fb94a301f"
}

Hook de Bind

Logrado enganchando sys_bind(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"49",
    "sa_family":"2",
    "exe":"/usr/bin/python2.7",
    "pid":"109640",
    "ppid":"215496",
    "pgid":"109640",
    "tgid":"109640",
    "comm":"python",
    "nodename":"n225-117-018",
    "sip":"0.0.0.0",
    "sport":"8000",
    "res":"0",
    "sessionid":"30",
    "user":"root",
    "time":"1587540231936",
    "local_ip_str":"10.225.117.18",
    "hostname_str":"n225-117-018",
    "exe_md5":"4f458165a2129ba549f1b6605ee87e74"
}

Hook de Connect

Logrado enganchando tcp_v4_connect()/tcp_v6_connect()/ip4_datagram_connect()/ip6_datagram_connect(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"42",
    "sa_family":"2",
    "connect_type":"4",
    "dport":"1025",
    "dip":"180.101.49.11",
    "exe":"/usr/bin/ping",
    "pid":"6294",
    "ppid":"1941",
    "pgid":"6294",
    "tgid":"6294",
    "comm":"ping",
    "nodename":"test",
    "sip":"192.168.165.153",
    "sport":"45524",
    "res":"0",
    "sessionid":"1",
    "user":"root",
    "time":"1575721921240",
    "local_ip":"192.168.165.153",
    "hostname":"test",
    "exe_md5":"735ae70b4ceb8707acc40bc5a3d06e04"
}

Hook de Consulta DNS

Logrado enganchando udp_recvmsg()/udpv6_recvmsg(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"601",
    "sa_family":"2",
    "dport":"53",
    "dip":"192.168.165.2",
    "exe":"/usr/bin/ping",
    "pid":"6294",
    "ppid":"1941",
    "pgid":"6294",
    "tgid":"6294",
    "comm":"ping",
    "nodename":"test",
    "sip":"192.168.165.153",
    "sport":"53178",
    "qr":"1",
    "opcode":"0",
    "rcode":"0",
    "query":"www.baidu.com",
    "sessionid":"1",
    "user":"root",
    "time":"1575721921240",
    "local_ip":"192.168.165.153",
    "hostname":"test",
    "exe_md5":"39c45487a85e26ce5755a893f7e88293"
}

Hook de Creación de Archivo

Logrado enganchando security_inode_create(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"602",
    "exe":"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/bin/java",
    "file_path":"/tmp/kafka-logs/replication-offset-checkpoint.tmp",
    "pid":"3341",
    "ppid":"1",
    "pgid":"2657",
    "tgid":"2659",
    "comm":"kafka-scheduler",
    "nodename":"test",
    "sessionid":"3",
    "user":"root",
    "time":"1575721984257",
    "local_ip":"192.168.165.153",
    "hostname":"test",
    "exe_md5":"215be70a38c3a2e14e09d637c85d5311",
    "create_file_md5":"d41d8cd98f00b204e9800998ecf8427e"
}

Hook de Inyección de Procesos

Logrado enganchando sys_ptrace(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"101",
    "ptrace_request":"4",
    "target_pid":"7402",
    "addr":"00007ffe13011ee6",
    "data":"-a",
    "exe":"/root/ptrace/ptrace",
    "pid":"7401",
    "ppid":"1941",
    "pgid":"7401",
    "tgid":"7401",
    "comm":"ptrace",
    "nodename":"test",
    "sessionid":"1",
    "user":"root",
    "time":"1575722717065",
    "local_ip":"192.168.165.153",
    "hostname":"test",
    "exe_md5":"863293f9fcf1af7afe5797a4b6b7aa0a"
}

Hook de Carga de Archivo LKM

Logrado enganchando load_module(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"603",
    "exe":"/usr/bin/kmod",
    "lkm_file":"/root/ptrace/ptrace",
    "pid":"29461",
    "ppid":"9766",
    "pgid":"29461",
    "tgid":"29461",
    "comm":"insmod",
    "nodename":"test",
    "sessionid":"13",
    "user":"root",
    "time":"1577212873791",
    "local_ip":"192.168.165.152",
    "hostname":"test",
    "exe_md5":"0010433ab9105d666b044779f36d6d1e",
    "load_file_md5":"863293f9fcf1af7afe5797a4b6b7aa0a"
}

Hook de Cambio de Credenciales

Logrado enganchando commit_creds(), ejemplo:

root@kitploit:~
{
    "uid":"0",
    "data_type":"604",
    "exe":"/tmp/tt",
    "pid":"27737",
    "ppid":"26865",
    "pgid":"27737",
    "tgid":"27737",
    "comm":"tt",
    "old_uid":"1000",
    "nodename":"test",
    "sessionid":"42",
    "user":"root",
    "time":"1578396197131",
    "local_ip":"192.168.165.152",
    "hostname":"test",
    "exe_md5":"d99a695d2dc4b5099383f30964689c55"
}

Alerta de Inicio de Sesión de Usuario

root@kitploit:~
{
    "data_type":"1001",
    "status":"Failed",
    "type":"password",
    "user_exsit":"false",
    "user":"sad",
    "from_ip":"192.168.165.1",
    "port":"63089",
    "processor":"ssh2",
    "time":"1578405483119",
    "local_ip":"192.168.165.128",
    "hostname":"localhost.localdomain"
}

Alerta de Hook de Archivo PROC

root@kitploit:~
{
    "uid":"-1",
    "data_type":"700",
    "module_name":"autoipv6",
    "hidden":"0",
    "time":"1578384987766",
    "local_ip":"192.168.165.152",
    "hostname":"test"
}

Alerta de Hook de Syscall

root@kitploit:~
{
    "uid":"-1",
    "data_type":"701",
    "module_name":"diamorphine",
    "hidden":"1",
    "syscall_number":"78",
    "time":"1578384927606",
    "local_ip":"192.168.165.152",
    "hostname":"test"
}

Alerta de LKM Oculto

root@kitploit:~
{
    "uid":"-1",
    "data_type":"702",
    "module_name":"diamorphine",
    "hidden":"1",
    "time":"1578384927606",
    "local_ip":"192.168.165.152",
    "hostname":"test"
}

Alerta de Hook de Interrupciones

root@kitploit:~
{
    "uid":"-1",
    "data_type":"703",
    "module_name":"syshook",
    "hidden":"1",
    "interrupt_number":"2",
    "time":"1578384927606",
    "local_ip":"192.168.165.152",
    "hostname":"test"
}

Acerca del Rendimiento de AgentSmith-HIDS

Entorno de Prueba (VM):

CPUIntel(R) Xeon(R) Platinum 8260 CPU @ 2.40GHz 4Core
RAM8GB
OS/KernelDebian9 / 4.14.81.bm.19-amd64

Carga de Prueba:

ltp -f syscalls

Resultado de Prueba (1min):

Datos de Prueba Originales:

Datos de Benchmark

prueba cyclictest

cyclictest -p 90 - m -c 0 -i 200 -n -h 100 -q -l 1000000

Desinstalar Smith:

root@kitploit:~
# Total: 000999485
# Min Latencies: 00002
# Avg Latencies: 00007
# Max Latencies: 13905
# Histogram Overflows: 00515

Instalar Smith:

root@kitploit:~
# Total: 000999519
# Min Latencies: 00002
# Avg Latencies: 00007
# Max Latencies: 15216
# Histogram Overflows: 00481

time -v /opt/ltp/testcases/bin/execve05 -n 30000

10 veces

Instalar Smith:

Tiempo de Usuario Promedio(s)Tiempo de Sistema Promedio(s)
22.32914.885

Desinstalar Smith:

Tiempo de Usuario Promedio(s)Tiempo de Sistema Promedio(s)
22.27114.395

Documentos para fines de despliegue y prueba:

Inicio Rápido

Agradecimientos Especiales (Sin orden)

yuzunzhi

hapood

HF-Daniel

smcdef

Wechat del desarrollador

Canal de Wechat de '灾难控制局'

Proporcionaremos constantemente información sobre las funcionalidades de AgentSmith-HIDS a través de este canal, ¡un buen lugar para recibir las noticias más actualizadas!

Licencia

El módulo del kernel de AgentSmith-HIDS se distribuye bajo la licencia GNU GPLv2.

Descargar herramienta
Manejador de HookRetardo Promedio(us)TP99(us)TP95(us)TP90(us)
connect_entry_handler0.29146.76270.3550.3012
connect_handler2.140618.380112.1027.832
execve_entry_handler5.932013.70349.9088.334
execve_handler6.882626.058415.997612.6260
security_inode_create_entry_handler1.99639.30426.77304.6816
security_inode_create_handler4.211413.21658.837756.534