Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
AgentSmith-HIDS — Von Kprobe-Technologie Open Source Hostbasiertes Intrusion Detection System (HIDS), von E_Bwill. | Kitploit
Tools/GitHubGitHub/ebwi11/agentsmith-hids
Privilege EscalationAufklärungContainer-SicherheitBedrohungsanalyseEinbruchserkennungIncident ResponseDNS-AnalyseArchived
GitHubebwi11/agentsmith-hids

AgentSmith-HIDS

Von Kprobe-Technologie Open Source Hostbasiertes Intrusion Detection System (HIDS), von E_Bwill.

Repository anzeigen
602163vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

AgentSmith-HIDS

                        --Der Name dieses Projekts wurde vom Film "The Matrix" inspiriert

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

English | 简体中文

DIESES REPO IST ALT

RELEASE VERSION: https://github.com/bytedance/Elkeid

Über AgentSmith-HIDS

Technisch gesehen ist AgentSmith-HIDS kein Host-basiertes Intrusion Detection System (HIDS), da es keine Regel-Engine und Erkennungsfunktionen besitzt. Es kann jedoch als leistungsstarker "Host-Informationssammlungs-Agent" als Teil Ihrer eigenen HIDS-Lösung verwendet werden. Die Vollständigkeit der Informationen, die von diesem Agenten gesammelt werden können, war eines der wichtigsten Kriterien bei der Entwicklung dieses Projekts. Daher wurde es so konzipiert, dass es im Kernel-Stack arbeitet und einen großen Vorteil gegenüber Anwendungen im User-Stack hat, wie z. B.:

  • Bessere Leistung: Benötigte Informationen werden im Kernel-Stack gesammelt, um zusätzliche Aktionen wie das Durchsuchen von '/proc' zu vermeiden. Um die Leistung der Datenübertragung zu verbessern, werden die gesammelten Daten über Shared RAM anstelle von Netlink übertragen.
  • Schwer zu umgehen: Die Informationssammlung wird durch ein speziell entwickeltes Kernel-Modul ermöglicht, was es fast unmöglich macht, die Erkennung durch Schadsoftware wie Rootkits zu umgehen, die sich absichtlich verstecken können.
  • Einfach zu integrieren: AgentSmith-HIDS wurde für die Integration mit anderen Anwendungen entwickelt und kann nicht nur als Sicherheitstool, sondern auch als gutes Überwachungstool oder sogar als guter Detektor Ihrer Assets verwendet werden. Der Agent ist in der Lage, Benutzer, Dateien, Prozesse und Internetverbindungen für Sie zu sammeln. Stellen Sie sich vor, Sie integrieren es in ein CMDB, dann erhalten Sie eine umfassende Karte Ihres Netzwerks, Hosts, Container und Geschäftsprozesse (sogar Abhängigkeiten). Was wäre, wenn Sie auch ein Datenbank-Audit-Tool zur Hand hätten? Die Karte könnte erweitert werden, um die Beziehung zwischen Ihrer DB, DB-Benutzern, Tabellen, Feldern, Anwendungen, Netzwerk, Hosts und Containern usw. zu enthalten. Denken Sie an die Möglichkeit der Integration mit Netzwerk-Intrusion-Detection-Systemen und/oder Threat Intelligence usw., eine höhere Rückverfolgbarkeit könnte ebenfalls erreicht werden. Es wird nie langweilig.
  • Kernel-Stack + User-Stack: AgentSmith-HIDS bietet auch ein User-Stack-Modul, um die Funktionalität bei der Zusammenarbeit mit dem Kernel-Stack-Modul weiter zu erweitern.

Hauptfunktionen von AgentSmith-HIDS:

  • Das Kernel-Stack-Modul hakt execve, connect, process inject, create file, DNS query, load LKM Verhalten über Kprobe ein und kann auch Container überwachen, indem es mit dem Linux-Namespace kompatibel ist.
  • Das User-Stack-Modul nutzt integrierte Erkennungsfunktionen, darunter Abfragen der Benutzerliste, Listening-Ports-Liste, System-RPM-Liste, Planungsaufgaben
  • AntiRootkit: Von Tyton, aktuell mit PROC_FILE_HOOK, SYSCALL_HOOK, LKM_HIDDEN, INTERRUPTS_HOOK Funktionalität, funktioniert jedoch nur auf Kernel > 3.10.
  • Überwachung von Berechtigungswechseln (außer sudo/su/sshd)
  • Überwachung von Benutzeranmeldungen

Nutzungsszenarien/-methoden von AgentSmith-HIDS (wird ergänzt)

  • Wie man mit AgentSmith HIDS eine Reverse Shell erkennt

Zur Kompatibilität mit Kernel-Versionen

  • Kernel > 2.6.25
  • AntiRootKit > 3.10

Zur Kompatibilität mit Containern

QuelleKnotenname
Hosthostname
DockerContainer-Name
k8sPod-Name

Zusammensetzung von AgentSmith-HIDS

  • Kernel-Stack-Modul (LKM) Hakt Schlüsselfunktionen über Kprobe ein, um benötigte Informationen zu erfassen.
  • User-Stack-Modul Sammelt Daten, die vom Kernel-Stack-Modul erfasst wurden, führt erforderliche Verarbeitung durch und sendet sie an Kafka; Sendet kontinuierlich Heartbeat-Pakete an den Server, damit die Prozessintegrität identifiziert werden kann; Führt vom Server empfangene Befehle aus.
  • Agent-Server(Optional) Sendet Befehle an das User-Stack-Modul und überwacht den Status des User-Stack-Moduls.

Execve-Hook

Erreicht durch Hooking von sys_execve()/sys_execveat()/compat_sys_execve()/compat_sys_execveat(), Beispiel:

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

Erreicht durch Hooking von sys_bind(), Beispiel:

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

Erreicht durch Hooking von tcp_v4_connect()/tcp_v6_connect()/ip4_datagram_connect()/ip6_datagram_connect(), Beispiel:

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

Erreicht durch Hooking von udp_recvmsg()/udpv6_recvmsg(), Beispiel:

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

Erreicht durch Hooking von security_inode_create(), Beispiel:

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

Erreicht durch Hooking von sys_ptrace(), Beispiel:

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

Erreicht durch Hooking von load_module(), Beispiel:

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

Erreicht durch Hooking von commit_creds(),Beispiel:

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

Benutzeranmelde-Warnung

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

PROC File Hook Warnung

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

Syscall Hook Warnung

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

LKM Hidden Warnung

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

Interrupts Hook Warnung

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

Zur Leistung von AgentSmith-HIDS

Testumgebung (VM):

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

Testlast:

ltp -f syscalls

Testergebnis (1Min):

Ursprüngliche Testdaten:

Benchmark-Daten

cyclictest-Test

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

Smith deinstalliert:

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

Smith installiert:

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 Mal

Smith installiert:

Durchschnittliche Benutzerzeit (s)Durchschnittliche Systemzeit (s)
22,32914,885

Smith deinstalliert:

Durchschnittliche Benutzerzeit (s)Durchschnittliche Systemzeit (s)
22,27114,395

Dokumente für Bereitstellungs- und Testzwecke:

Schnellstart

Besonderer Dank (ohne Reihenfolge)

yuzunzhi

hapood

HF-Daniel

smcdef

WeChat des Entwicklers

WeChat-Kanal von '灾难控制局'

Wir werden auf diesem Kanal kontinuierlich Informationen über die Funktionen von AgentSmith-HIDS bereitstellen. Ein guter Ort, um die neuesten Nachrichten zu erhalten:)

Lizenz

Das Kernel-Modul von AgentSmith-HIDS wird unter der GNU GPLv2-Lizenz vertrieben.

Tool herunterladen
Hook HandlerDurchschnittliche Verzögerung(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