Englisches Original: https://argusic.com/subject/knock-knock
knock-knock
Knock-Knock: Ein Live-Dashboard mit Multi-Protokoll-Honeypot für Einbruchsversuche im Internet: 13 Protokolle, ein erweiterbares Framework und eine Datenbank für Bedrohungsinformationen, die einen öffentlichen IP-Blocklist-Feed bereitstellt.
Läuft mit MocksQuelle: GitHubHomepagePythonMITCommit da33d6ae4a60
Python, Lizenz MIT. Das Projekt beschreibt sich selbst als: blocklist, bots, cybersecurity, dashboard, docker, extensible, ftp und honeypot.
knock-knock läuft, mit Ersatz für die Dienste, von denen es abhängt. Ein Argusic-Agent hat es in 62 Minuten installiert und ist auf 5 Fehler gestoßen und hat jeden davon ohne Hilfe behoben. Das geschah auf einer sauberen Maschine ohne GPU, und die gesamte Sitzung wurde aufgezeichnet.
With a locally built Redis 7.4.1, MaxMind test GeoIP .mmdb files, and non-root high ports, monitor.py spawned all eight honeypots, uvicorn served the dashboard on :8080 (HTTP 200) with live WebSocket knocks, and the 104-test suite passed; RDP/SSH port overrides, GEOIP_DIR, and stats.py DB_DIR were fixed along the way.
Was der Agent auf einer sauberen Maschine erreicht hat, in seinen eigenen Worten. So wird gemessen
Von Argusic jedes Mal auf einer frischen Maschine gemessen. Jede Zahl verlinkt auf ihren Nachweis. Argusic Score 92 von 100 (der Mittelwert der Lauf-Scores dieses Projekts).
Auf einen Blick
Projektdaten von GitHub, oben auf dieser Seite verlinkt, aktualisiert . Testdaten von Argusic (CC BY 4.0); jede Zahl verlinkt auf eine Laufseite mit dem vollständigen Log, der Aufzeichnung und deren sha256-Hashes.
Was gemessen wurde
Aus dem Lauf, der diesen Befund entschieden hat. Jede Zeile ist ein aufgezeichneter Wert, keine Schätzung.

Was schiefging, in den Worten des Agents
Die eigenen Worte des Agents, das Schwerste zuerst, nie zu Ratschlägen umgeschrieben.
- GeoIP database paths hard-coded to /usr/share/GeoIP, which is root-owned and unpopulated in this non-root container; monitor blocked waiting forever10 Minuten
- RDP honeypot hard-coded c_listen 3389 so ENABLED_PROTOCOLS=RDP:<port> was ignored and the spawned honeypot died (port refused)8 Minuten
- SSH honeypot ignored --port (only read SSH_PORT), so it never bound the ENABLED_PROTOCOLS port6 Minuten
- stats.py hard-coded data/knock_knock.db and crashed with 'no such table: country_intel' when DB_DIR pointed elsewhere3 Minuten
- monitor.py failed with redis ConnectionError Errno 99 connecting to localhost:6379 (IPv6-first) when only IPv4 was bound2 Minuten
- Installationszeit
- 62 Minuten
- Von der kalten Maschine bis zum Ende
- 19 Minuten
- Aufgetretene und behobene Fehler
- 5 aufgetreten, 5 ohne menschliche Hilfe behoben
- Wie das Ergebnis belegt wurde
- python -m pytest tests/ exited 0 with 104 passed (4 added regression tests for the port/GEOIP_DIR fixes); monitor.py spawned 8 honeypots whose ports answered; uvicorn main:app answered GET / with 200 (186421 B) and delivered new_knock messages for SSH/FTP/HTTP/SMTP/TNET/SIP over /ws; lifts confirmed in SQLite via stats.py; knock-api GET /ip/127.0.0.1 returned 200.
- Verbrauchte Modell-Tokens
- 285.315
- Genau getesteter Commit
- da33d6ae4a60
- Container-Image
- sha256:cdd920bce783
Was nicht gemessen wurde
Die andere Hälfte, damit Sie genau sehen, wie weit dieser Nachweis reicht. Eine Lücke wird als Lücke angezeigt und nie aufgefüllt.
- Maximaler GPU-Speicher
- dieser Lauf fand auf einer CPU-Maschine statt, es gab also keine GPU zu messen
- Verhalten über einen langen Lauf
- jeder Versuch verwendet die kleinsten dokumentierten Einstellungen und ein festes Zeitbudget, daher misst dies, ob es läuft, nicht wie es sich unter Last hält
- Verhalten gegenüber echten Diensten
- dieser Lauf wurde nur gegen Ersatzdienste verifiziert
Das Ende der Aufzeichnung
Die letzten Zeilen der Terminalsitzung, die diesen Befund entschieden hat, genau so, wie sie aufgezeichnet wurden.
- **SSH honeypot ignored `--port`** (only read `SSH_PORT`) — same symptom (`honeypots/ssh_honeypot_… - **GeoIP paths hard-coded to `/usr/share/GeoIP`** in `monitor.py`, `main.py`, and `extras/api/knoc… - **`stats.py` ignored `DB_DIR`** (crashed with `no such table: country_intel` on any non-default D… - Minor: `localhost`→Redis failed with `Errno 99` (IPv6-first resolution against an IPv4 bind); res… ## Verified end to end - All 8 honeypot ports OPEN after launch; the 3 latest fixes are covered by `tests/test_install_reg… - Real credential attempts on SSH/FTP/Telnet/SMTP/HTTP/SIP/RDP/SMB → SSH rejected auth, FTP `530 Lo… - Persisted to SQLite (`data/knock_knock.db`) with correct fields (e.g. SSH user/pass `e2euser`/`e2… - Web: `/` → 200 (186421 B), `/summary` → 200, `/static/demo.gif` → 200; `/api` and `/blocklist` → … - Public API: `/ip/127.0.0.1` → 200 with `listed:true, hits:10`; `/check-ranges?ranges=203.0.113.0/… - Ban round-trip via `ip_ban.py` wrote and removed the Redis key; `node --check` passed on all thre… **Not verified:** `restart.sh` (needs systemd/docker, neither present); the real browser rendering …
Gesamte Sitzung abspielen, jeder Befehl von einer sauberen Maschine bis zu diesem Punkt.
So wurde getestet
Ein Agent, ein Container, keine menschliche Hilfe. Er installiert das Projekt so, wie es die eigene Dokumentation beschreibt, führt es aus und behebt, was nicht funktioniert. Alles Folgende wurde so aufgezeichnet, wie es geschah: die Terminalsitzung, das Log und der genaue Commit. Die vollständige Methodik.
Stärken und Grenzen
Gemessene Fakten, keine Meinungen. Wie diese Inhalte entstehen.
Was gut lief
- In 62 Minuten installiert.
- Hat sich von allen 5 Fehlern erholt, ohne dass ein Mensch eingriff, was zeigt, dass die Fehlschläge gut genug dokumentiert sind, um sie zu lösen.
- Lizenz MIT, laut Angabe des Hosts.
Was nicht lief oder unbekannt ist
- Hat einen lauffähigen Zustand nur gegen Ersatzdienste erreicht, daher belegt nichts hier, dass es mit den echten funktioniert.
- Bisher einmal gemessen. Ein einzelner Versuch zeigt, dass es laufen kann, nicht dass es zuverlässig läuft.
Ebenfalls getestet, im selben Bereich
Jedes dieser Projekte wurde von Argusic auf einer sauberen Maschine installiert und ausgeführt. Hier erscheint nichts, was nicht getestet wurde.
Laufverlauf
| getestet von | Versuch | Ergebnis | Score | Kosten USD | wann |
|---|---|---|---|---|---|
| Argusic Runner | 1/3 | Läuft mit Mocks | 92,00 | 0,29 |
Themen (von GitHub)
blocklistbotscybersecuritydashboarddockerextensibleftphoneypothttppythonrdpsecurityself-hostedsipsmbsmtpsshtelnetthreat-intelligencevisualizations
Badge einbetten
Markdown für die README des Projekts. Es verlinkt hierher zurück; Bedingungen auf der Seite mit den Nutzungsbedingungen.
[](https://argusic.com/subject/knock-knock)Fragen
- Läuft knock-knock?
- knock-knock läuft, mit Mocks als Ersatz für externe Dienste. Argusic hat es auf einer sauberen Maschine in 62 Minuten installiert und gestartet, ist dabei auf 5 Fehler gestoßen und hat die Sitzung aufgezeichnet.
- Wie hat Argusic knock-knock getestet?
- Auf einer frischen Einwegmaschine, mit jedem Befehl aufgezeichnet und dem Repository fixiert auf Commit da33d6ae4a60. Ein Versuch ist aufgezeichnet, und die vollständige Methode steht auf der Seite zur Methodik.
- Was hat der Test von knock-knock gekostet?
- Der Lauf, der diesen Befund ergab, kostete 0,29 USD: echte Rechen- und Modellkosten, kein Listenpreis pro Million Tokens. Der Betrag ist auf der Seite dieses Laufs aufgezeichnet.
- Wie lange dauert die Installation von knock-knock?
- 62 Minuten in dem Lauf, der diesen Befund entschieden hat, von einer sauberen Maschine bis zum lauffähigen Zustand. Das ist ein gemessener Versuch, kein Durchschnitt.
- Braucht knock-knock eine GPU?
- Nicht zum Starten. Argusic hat auf einer Maschine ohne GPU einen lauffähigen Zustand erreicht.
- Was geht bei der Installation von knock-knock schief?
- Im aufgezeichneten Lauf gingen 5 Dinge kaputt, und 5 davon wurden ohne menschliche Hilfe behoben. Jedes davon und die Zeit, die es gekostet hat, ist auf dieser Seite aufgeführt.
- Wo ist der Nachweis für knock-knock?
- Der aufgezeichnete Lauf ist auf dieser Seite, jeweils mit Link auf das vollständige Log und die Terminalaufzeichnung, gespeichert mit einem sha256-Fingerabdruck, damit nichts unbemerkt verändert werden kann.