Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AgentSmith-HIDS — Sistema di Rilevamento delle Intrusioni (HIDS) Open Source basato su host di Kprobe technology, da E_Bwill. | Kitploit
Strumenti/GitHubGitHub/ebwi11/agentsmith-hids
Escalation di PrivilegiRicognizioneSicurezza dei ContenitoriThreat IntelligenceRilevamento IntrusioniRisposta agli IncidentiAnalisi DNSArchived
GitHubebwi11/agentsmith-hids

AgentSmith-HIDS

Sistema di Rilevamento delle Intrusioni (HIDS) Open Source basato su host di Kprobe technology, da E_Bwill.

Vedi Repository
6021635 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

AgentSmith-HIDS

                        --Il nome di questo progetto è stato ispirato dal film - The Matrix

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

Inglese | 简体中文

QUESTO REPO È VECCHIO

VERSIONE DI RILASCIO: https://github.com/bytedance/Elkeid

Informazioni su AgentSmith-HIDS

Tecnicamente, AgentSmith-HIDS non è un Host-based Intrusion Detection System (HIDS) a causa della mancanza di un motore di regole e di funzioni di rilevamento. Tuttavia, può essere utilizzato come un 'Agente di Raccolta Informazioni Host' ad alte prestazioni come parte della tua soluzione HIDS. La completezza delle informazioni che possono essere raccolte da questo agente è stato uno dei parametri più importanti durante lo sviluppo di questo progetto, quindi è stato costruito per funzionare nel kernel stack e ottenere un enorme vantaggio rispetto a quelli che funzionano nello user stack, come:

  • Migliori prestazioni, Le informazioni necessarie vengono raccolte nel kernel stack per evitare azioni supplementari come la traversata di '/proc'; e per migliorare le prestazioni del trasporto dati, i dati raccolti vengono trasferiti tramite ram condivisa invece di netlink.
  • Difficile da bypassare, La raccolta delle informazioni è stata alimentata da un driver del kernel appositamente progettato, rendendo quasi impossibile bypassare il rilevamento di software maligno come rootkit, che possono deliberatamente nascondersi.
  • Facile da integrare, L'AgentSmith-HIDS è stato costruito per integrarsi con altre applicazioni e può essere utilizzato non solo come strumento di sicurezza ma anche come buon strumento di monitoraggio, o persino un buon rilevatore dei tuoi asset. L'agente è in grado di raccogliere utenti, file, processi e connessioni internet per te, quindi immagina quando lo integri con CMDB, potresti ottenere una mappa completa composta dalla tua rete, host, container e business (anche dipendenze). E se avessi anche uno strumento di audit del database? La mappa può essere estesa per contenere la relazione tra il tuo DB, utente DB, tabelle, campi, applicazioni, rete, host e container ecc. Pensando alla possibilità di integrazione con sistemi di rilevamento delle intrusioni di rete e/o intelligence delle minacce ecc., si potrebbe ottenere anche una maggiore tracciabilità. Non invecchia mai.
  • Kernel stack + User stack, AgentSmith-HIDS fornisce anche un modulo user stack, per estendere ulteriormente la funzionalità quando si lavora con il modulo kernel stack.

Principali capacità di AgentSmith-HIDS:

  • Il modulo kernel stack intercetta i comportamenti execve, connect, process inject, create file, DNS query, load LKM tramite Kprobe, ed è anche in grado di monitorare i contenitori essendo compatibile con Linux namespace.
  • Il modulo user stack utilizza funzioni di rilevamento integrate tra cui interrogazioni di Elenco utenti, Elenco porte in ascolto, Elenco RPM di sistema, Processi schedulati
  • AntiRootkit, Da: Tyton, per ora aggiunge le funzionalità PROC_FILE_HOOK, SYSCALL_HOOK, LKM_HIDDEN, INTERRUPTS_HOOK, ma funziona solo su Kernel > 3.10.
  • Monitoraggio del cambio credenziali (eccetto sudo/su/sshd)
  • Monitoraggio del login utente

Scenari/metodi di utilizzo di AgentSmith-HIDS (da aggiungere)

  • Come rilevare una reverse shell con AgentSmith HIDS

Sulla compatibilità con la versione del kernel

  • Kernel > 2.6.25
  • AntiRootKit > 3.10

Sulla compatibilità con i contenitori

SorgenteNome nodo
Hosthostname
Dockernome contenitore
k8snome pod

Composizione di AgentSmith-HIDS

  • Modulo kernel stack (LKM) Intercetta funzioni chiave tramite Kprobe per catturare le informazioni necessarie.
  • Modulo user stack Raccoglie i dati catturati dal modulo kernel stack, esegue le elaborazioni necessarie e li invia a Kafka; Continua a inviare pacchetti heartbeat al server per identificare l'integrità del processo; Esegue i comandi ricevuti dal server.
  • Agent Server (Opzionale) Invia comandi al modulo user stack e monitora lo stato del modulo user stack.

Execve Hook

Achieved by hooking sys_execve()/sys_execveat()/compat_sys_execve()/compat_sys_execveat(), example:

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

Bind Hook

Achieved by hooking sys_bind(), example:

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

Connect Hook

Achieved by hooking tcp_v4_connect()/tcp_v6_connect()/ip4_datagram_connect()/ip6_datagram_connect(), example:

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

DNS Query Hook

Achieved by hooking udp_recvmsg()/udpv6_recvmsg(), example:

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

Create File Hook

Achieved by hooking security_inode_create(), example:

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

Process Inject Hook

Achieved by hooking sys_ptrace(), example:

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

Load LKM File Hook

Achieved by hooking load_module(), example:

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

Cred Change Hook

Achieved by Hook commit_creds(),example:

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

Allerta di login utente

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

Allerta hook file PROC

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

Allerta hook 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"
}

Allerta LKM nascosto

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

Allerta hook interrupt

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

Sulle prestazioni di AgentSmith-HIDS

Ambiente di test (VM):

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

Carico di test:

ltp -f syscalls

Risultato del test (1min):

Dati di test originali:

Benchmark Data

Test cyclictest

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

Smith disinstallato:

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

Smith installato:

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 volte

Smith installato:

Tempo medio utente (s)Tempo medio sistema (s)
22.32914.885

Smith disinstallato:

Tempo medio utente (s)Tempo medio sistema (s)
22.27114.395

Documenti per scopi di distribuzione e test:

Guida rapida

Ringraziamenti speciali (non in ordine)

yuzunzhi

hapood

HF-Daniel

smcdef

WeChat dello sviluppatore

Canale WeChat di '灾难控制局'

Forniremo costantemente informazioni sulle funzionalità di AgentSmith-HIDS attraverso questo canale, un buon posto per ricevere le notizie più aggiornate :)

License

Il modulo kernel di AgentSmith-HIDS è distribuito sotto licenza GNU GPLv2.

Scarica lo strumento
Hook HandlerAverage Delay(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