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
ehids-agent — Un Sistema de Detección de Intrusiones basado en Host para Linux basado en eBPF. | Kitploit
Herramientas/GitHubGitHub/gojue/ehids-agent
Herramientas DefensivasAnálisis Dinámico (Sandboxing)Mapeo de RedesDetección de IntrusionesPapers e InvestigaciónAprendizaje y EducaciónAnálisis de DNSEscape de Contenedores
GitHubgojue/ehids-agent

ehids-agent

Un Sistema de Detección de Intrusiones basado en Host para Linux basado en eBPF.

Ver Repositorio
45586hace 2 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

English | 中文介绍

Introducción a eHIDS

HIDS demo implementado con tecnología de kernel eBPF.

Advertencia Solo un DEMO basado en eBPF, por favor utilice Tetragon / Tracee / falco en su lugar.

Implementaciones y funcionalidades:

  1. Captura de datos de red TCP
  2. Captura de datos de red UDP
  3. Captura de información DNS en modo uprobe
  4. Captura de datos de procesos
  5. Captura de eventos de escenario de ejecución de comandos de JAVA RASP mediante uprobe
  6. Implementación del framework Go para eBPF, implementación abstracta de eventos de múltiples tipos para el método de montaje kprobe\uprobe.
  7. Los desarrolladores solo necesitan implementar tres archivos:
    • El archivo C en modo kernel.
    • El archivo Go en modo usuario.
    • La estructura de mensajes de eventos en modo usuario, y el framework cargará y ejecutará automáticamente.
  8. Los usuarios pueden implementar el informe y procesamiento de datos según la interfaz del logger, como informar a ES\kafka y otros centros de registro.

Principio

Referencia : Sitio web oficial de eBPF

  1. En el modo kernel, el código eBPF se escribe en C, y llvm lo compila a bytecode eBPF.
  2. El modo usuario está escrito en golang, con la biblioteca de clases go pura cilium/ebpf, carga en kernel del bytecode eBPF, kprobe/uprobe HOOK de la función correspondiente.
  3. El modo usuario utiliza golang para la lectura, decodificación y procesamiento de eventos.

Planificación

Programación

El autor está analizando los productos de protección de seguridad en tiempo de ejecución implementados por tecnologías nativas de la nube como eBPF, como cilium, datadog, tracee, falco y kubeArmor, desde la perspectiva del código fuente. Una vez completado el análisis, continuaré compartiendo el diseño, las ideas y las funciones de este producto.

Progreso actual y cambios

  • 【HECHO】2021-12-09 Análisis del código fuente del mecanismo de implementación de Cilium eBPF
  • 【HECHO】2021-12-19 Análisis del mecanismo de detección de seguridad de eBPF de datadog
  • 【HECHO】2021-12-30 Programa eBPF en modo kernel para implementar escape de contenedores y ocultar rootkit de cuentas
  • 【PENDIENTE】2022-1-31 tracee Análisis del código fuente del mecanismo de implementación de eBPF
  • ...

Características del producto

  1. Funciones completas (red, procesos, archivos, eventos)
  2. Monitoreo
  3. Alertas
  4. Fusión
  5. Estadísticas
  6. Reconciliación
  7. Gestión y control unificados

Instrucciones

  1. La parte del modo kernel es el código de programación eBPF implementado por la biblioteca de clases nativa de Linux, y utiliza clang (llvm) para la compilación de bytecode.
  2. La parte del modo usuario está escrita para la biblioteca de clases cilium/ebpf de golang, que implementa funciones como cargar bytecodes eBPF al kernel, montar en puntos de hook y lectura de eventos.
  3. Este proyecto utiliza kprobe y uprobe respectivamente para realizar la captura de eventos de red de TCP y UDP.

Entorno de Desarrollo

  • UBUNTU 21.04 server
  • go version go1.17.2 linux/amd64
  • Ubuntu clang version 12.0.0-3ubuntu1~21.04.2
  • openjdk version "1.8.0_292"

Pasos de instalación del entorno

Ver también : Entorno de desarrollo eBPF de CFC4N

  • sudo apt-get install -y make gcc libssl-dev bc libelf-dev libcap-dev clang gcc-multilib llvm libncurses5-dev git pkg-config libmnl-dev bison flex graphviz
  • sudo apt-get install -y make gcc clang llvm git pkg-config dpkg-dev gcc-multilib
  • cd ~/download/
  • sudo apt update
  • sudo apt-get source linux-image-$(uname -r)
  • sudo apt-get source linux-image-unsigned-$(uname -r)
  • sudo apt install libbfd-dev libcap-dev zlib1g-dev libelf-dev libssl-dev

Compilación y Ejecución

Compilación

root@kitploit:~
git clone https://github.com/ehids/ehids-agent.git
cd ehids
make
./bin/ehids-agent

Ejecución

Abra otra terminal, ejecute comandos de red y active el comportamiento de red

root@kitploit:~
wget www.cnxct.com

O compile y ejecute el ejemplo de ejecución de comandos de Java para probar la función de Java RASP. Uprobe monta la función JDK_execvpe de libjava.so, y el desplazamiento de dirección de compensación correspondiente es 0x19C30. Para otras versiones, localice la dirección de compensación usted mismo.

root@kitploit:~
cd examples
javac Main.java
java Main

Información de versión de JAVA JDK

~$java -version

openjdk version "1.8.0_292"

OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1-b10)

OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

Resultados

root@kitploit:~
root@vmubuntu:/home/cfc4n/project/ehids# ./bin/ehids
2021/12/01 19:27:08 start to run EBPFProbeUJavaRASP probe
2021/12/01 19:27:08 start to run EBPFProbeKTCP probe
2021/12/01 19:27:08 start to run EBPFProbeKTCPSec probe
2021/12/01 19:27:08 start to run EBPFProbeKUDP probe
2021/12/01 19:27:08 start to run EBPFProbeUDNS probe
2021/12/01 19:27:08 probeName:EBPFProbeKTCPSec, probeTpye:kprobe, start time:07:23:49, PID:864, UID:101, AF:2, TASK:5systemd-resolv
2021/12/01 19:27:08 probeName:EBPFProbeKUDP, probeTpye:kprobe, PID:0, comm:systemd-resolve, qname:57.22.91.101.in-addr.arpa, qclass:1, qtype:12.
2021/12/01 19:27:09 probeName:EBPFProbeKTCP, probeTpye:kprobe, start time:19:31:19, family:AF_INET, PID:409744, command:curl, UID:0, rx:67408, tx:79, dest:118.31.44.218:20480, source:172.16.71.4, type:OUT, result:True
2021/12/01 19:27:10 probeName:EBPFProbeUJavaRASP, probeTpye:uprobe, JAVA RASP exec and fork. PID:409049, command:ifconfig, mode:MODE_VFORK

Referencias

  • https://ebpf.io
  • https://github.com/trichimtrich/dns-tcp-ebpf
  • https://github.com/p-/socket-connect-bpf

Mecanismo de explotación maliciosa y detección de eBPF

El artículo sobre el mecanismo de explotación maliciosa y detección basado en eBPF ha sido compartido en la cuenta pública de WeChat del Centro de Respuesta a Emergencias de Seguridad de Meituan,Mecanismo de utilización maliciosa y detección de eBPF

Grupo de WeChat

Notas

No es el repositorio oficial de Meituan, y solo es contribuido por ingenieros.

El repositorio no contiene la versión completa de HIDS utilizada por Meituan, para la demostración simplificada, si necesita ver el código fuente completo en detalle, haga clic en:https://www.cnxct.com/jobs/

Descargar herramienta