Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ehids-agent — Um Sistema de Detecção de Intrusão baseado em Host para Linux baseado em eBPF. | Kitploit
Ferramentas/GitHubGitHub/gojue/ehids-agent
Ferramentas DefensivasAnálise Dinâmica (Sandboxing)Mapeamento de RedeDetecção de IntrusãoPapers e PesquisaAprendizado e EducaçãoAnálise de DNSEscape de Contêiner
GitHubgojue/ehids-agent

ehids-agent

Um Sistema de Detecção de Intrusão baseado em Host para Linux baseado em eBPF.

Ver Repositório
455869há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Inglês | 中文介绍

Introdução ao eHIDS

HIDS demo implementado pela tecnologia do kernel eBPF.

Aviso Apenas um DEMO baseado em eBPF, por favor use Tetragon / Tracee / falco em vez disso.

Implementações e Funcionalidades:

  1. Captura de dados de rede TCP
  2. Captura de dados de rede UDP
  3. Captura de informações DNS no modo uprobe
  4. Captura de dados de processos
  5. Captura de eventos de execução de comando JAVA RASP via uprobe
  6. Implementação em Go do framework eBPF, implementação abstrata de eventos multi-tipo para o método de montagem kprobe/uprobe.
  7. Os desenvolvedores precisam apenas implementar três arquivos:
    • O arquivo C em modo kernel.
    • O arquivo Go em modo usuário.
    • A estrutura de mensagem de evento em modo usuário, e o framework carregará e executará automaticamente.
  8. Os usuários podem implementar o relatório e processamento de dados de acordo com a interface logger, como relatar para ES\kafka e outros centros de log.

Princípio

Referência: Site Oficial do eBPF

  • No modo kernel, o código eBPF é escrito em C, e llvm é compilado em bytecode eBPF.
  • O modo usuário é escrito em golang, usando a biblioteca pura Go cilium/ebpf, carregamento do kernel do bytecode eBPF, função HOOK kprobe/uprobe correspondente.
  • O modo usuário usa golang para leitura, decodificação e processamento de eventos.
  • Planejamento

    Cronograma

    O autor está analisando os produtos de proteção de segurança em tempo de execução implementados por tecnologias eBPF nativas da nuvem, como cilium, datadog, tracee, falco e kubeArmor, sob a perspectiva do código-fonte. Após a conclusão da análise, continuarei a compartilhar o design, as ideias e as funções deste produto.

    Progresso atual e Mudanças

    • 【CONCLUÍDO】2021-12-09 Análise do código-fonte do mecanismo de implementação do Cilium eBPF
    • 【CONCLUÍDO】2021-12-19 Análise do mecanismo de detecção de segurança do datadog com eBPF
    • 【CONCLUÍDO】2021-12-30 Programa eBPF em modo kernel para implementar escape de contêiner e ocultar rootkit de conta
    • 【EM ANDAMENTO】2022-01-31 Análise do código-fonte do mecanismo de implementação do eBPF no tracee
    • ...

    Funcionalidades do Produto

    1. Funções completas (rede, processo, arquivo, evento)
    2. Monitoramento
    3. Alerta
    4. Fusão
    5. Estatísticas
    6. Reconciliação
    7. Gerenciamento e controle unificados

    Instruções

    1. A parte do modo kernel é o código de programação eBPF implementado pela biblioteca nativa do Linux e usa clang (llvm) para compilação de bytecode.
    2. A parte do modo usuário é escrita para a biblioteca cilium/ebpf do golang, que implementa funções como carregar bytecodes eBPF para o kernel, montar em pontos de hook e leitura de eventos.
    3. Este projeto usa kprobe e uprobe respectivamente para realizar a captura de eventos de rede TCP e UDP.

    Ambiente de Desenvolvimento

    • 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"

    Passos de instalação do ambiente

    Veja também: Ambiente de desenvolvimento eBPF do 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

    Compilando e executando

    Compilação

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

    Executando

    Abra outro shell, execute comandos de rede e acione o comportamento de rede

    root@kitploit:~
    wget www.cnxct.com
    

    Ou compile e execute o exemplo de execução de comando java para testar a função do java RASP. O uprobe monta a função JDK_execvpe do libjava.so, e o endereço de offset correspondente é 0x19C30. Para outras versões, localize o endereço de offset por conta própria.

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

    Informações da versão do 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
    

    Referências

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

    Mecanismo de exploração maliciosa e detecção do eBPF

    O artigo sobre exploração maliciosa e mecanismo de detecção baseado em eBPF foi compartilhado na conta pública do WeChat do Meituan Security Emergency Response Center,Mecanismo de utilização maliciosa e detecção do eBPF

    Grupo WeChat

    Notas

    Não é o repositório oficial do Meituan, e é apenas contribuído por engenheiros.

    O repositório não contém a versão completa do HIDS em uso pelo Meituan, para o demo simplificado, se precisar ver o código-fonte completo em detalhes, clique: https://www.cnxct.com/jobs/

    Baixar ferramenta