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
45586há 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

  1. No modo kernel, o código eBPF é escrito em C, e llvm é compilado em bytecode eBPF.
  2. 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.
  3. 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