
Ein modularer Schwachstellenscanner mit automatischer Berichtserstellung.
Artemis ist ein modulares Schwachstellenscanner. Es ist das Werkzeug, das die Scanaktivitäten von CERT PL antreibt, indem es verschiedene Aspekte der Websicherheit überprüft und leicht verständliche Nachrichten erstellt, die direkt an die gescannten Organisationen gesendet werden können.
Wenn Sie zusätzliche Module verwenden möchten, die hier aufgrund von nicht BSD-kompatiblen Lizenzen nicht enthalten sind, besuchen Sie das Repository Artemis-modules-extra.
Wenn Sie Artemis modifizieren/entwickeln möchten, lesen Sie zuerst Entwicklung.
Artemis ist experimentelle Software, die sich in aktiver Entwicklung befindet – Nutzung auf eigenes Risiko.
Um über Artemis zu chatten, treten Sie dem Discord-Server bei!
Artemis wurde auf der BlackHat USA 2024 in Las Vegas und der BlackHat Europe 2025 in London vorgestellt. Weitere Informationen zu Artemis auf der BlackHat finden Sie hier und hier.
Das Projekt wurde auch auf dem 71. TF-CSIRT-Treffen in Kopenhagen, dem 69. TF-CSIRT-Treffen in Bukarest und der CONFidence-Konferenz vorgestellt.

Die Entwicklung von Artemis wurde durch Google Summer of Code 2024 und 2025 unterstützt.
Eine aktuelle Liste der Funktionen finden Sie in der Dokumentation. Die wichtigste ist die Möglichkeit, Berichte einfach zu exportieren, wie zum Beispiel:
Die folgenden Adressen enthalten Daten von Versionsverwaltungssystemen:
Die öffentliche Verfügbarkeit eines Code-Repositorys kann es einem Angreifer ermöglichen, die inneren Abläufe eines Systems zu erfahren, und falls es Passwörter oder API-Schlüssel enthält, auch unbefugten Zugriff zu erlangen. Solche Daten sollten nicht öffentlich zugänglich sein.
Die folgenden Adressen enthalten alte Joomla-Versionen:
- https://subdomain2.example.com:443 - Joomla 2.5.4
Wenn eine Website nicht mehr genutzt wird, empfehlen wir, sie abzuschalten, um das Risiko der Ausnutzung bekannter Schwachstellen in älteren Joomla-Versionen zu beseitigen. Andernfalls empfehlen wir regelmäßige Aktualisierungen des Joomla-Kerns und der Plugins.
Die Möglichkeit, solche Berichte automatisch zu erstellen, hat es uns ermöglicht, Organisationen in unserem Zuständigkeitsbereich über Hunderttausende von Schwachstellen zu informieren.

Um eine lokal modifizierte Version von Artemis zu starten, führen Sie aus:
./scripts/start --mode=development
Dieses Skript kopiert automatisch die Beispiel-Umgebungsdatei (env.example) nach .env, falls diese nicht existiert. Sie können dann die Einstellungen in der .env-Datei nach Ihren Bedürfnissen konfigurieren. Dazu gehört die Anpassung des User-Agents durch Setzen der Variable CUSTOM_USER_AGENT sowie anderer relevanter Parameter. Eine vollständige Liste der Konfigurationsvariablen und deren Beschreibungen finden Sie im Abschnitt Konfiguration in der Dokumentation.
Das Artemis-Image wird dann lokal (aus dem von Ihnen entwickelten Code) erstellt und nicht von Docker Hub heruntergeladen.
Für web werden Sie außerdem die Ergebnisse von Code-Änderungen auf der Seite sehen können, ohne den gesamten Container neu zu laden.
Um die Tests auszuführen, verwenden Sie:
./scripts/test
[!WARNING] Vermeiden Sie die direkte Verwendung von
python -m unittestalscommand:indocker-compose.test.yaml. Wenn Python als PID 1 läuft, leiden Unterprozesse, insbesondere Go-Binärdateien wie Nuclei, unter langsamer oder beeinträchtigter I/O, da PID 1 Signale und stdout/stderr anders behandelt. Verwenden Sie stattdessen unittest-parallel, da dessen Worker-Prozesse das PID-1-Problem vermeiden.
Artemis verwendet pre-commit, um Linter auszuführen und den Code zu formatieren.
pre-commit wird in der CI ausgeführt, um zu überprüfen, ob der Code korrekt formatiert ist.
Um es lokal auszuführen, verwenden Sie:
pre-commit run --all-files
Um pre-commit so einzurichten, dass es vor jedem Commit ausgeführt wird, verwenden Sie:
pre-commit install
Wir verwenden pip-tools zur Verwaltung von Abhängigkeiten. Um eine Abhängigkeit hinzuzufügen oder zu aktualisieren:
requirements.in (oder docs/requirements.in für Dokumentationsabhängigkeiten),./scripts/compile-requirements aus, um die eingefrorene(n) requirements.txt-Datei(en) zu generieren,.in- als auch die .txt-Dateien.Um die Dokumentation zu erstellen, verwenden Sie:
cd docs
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
make html
Bitte lesen Sie die Dokumentation.
Beiträge sind willkommen! Wir schätzen sowohl Ideen für neue Artemis-Module (als GitHub-Issues eingereicht) als auch Pull-Requests mit neuen Modulen oder Code-Verbesserungen.
So offensichtlich es auch erscheinen mag, wir möchten Sie höflich daran erinnern, dass Sie durch einen Beitrag zu Artemis automatisch der BSD 3-Clause-Lizenz für Ihre Eingabe zustimmen, ohne dass zusätzliche Erklärungen erforderlich sind.
Bitte stellen Sie vor dem Öffnen eines PR sicher, dass Sie pre-commit installiert haben:
pre-commit installUnd führen Sie es gegen Ihre Änderungen aus.
Großer Dank an die folgenden Personen, die zur Entwicklung von Artemis beigetragen haben, insbesondere an den KN Cyber Wissenschaftsclub der Warschauer Technischen Universität, der das Projekt initiiert hat!
![]() cyberamt 💻 🤔 |
![]() martclau 💻 🤔 |
![]() szymsid 💻 👀 |
![]() bulek 💻 👀 | ![]() Michel Le Bihan 💻 | ![]() Grzegorz Eliszewski 💻 🤔 📦 | ![]() kshitij kapoor 💻 🤔 | ![]() Delfin 💻 | ![]() Bornunique911 💻 | ![]() Ridham Bhagat 💻 |
![]() Mateusz Borkowski 💻 🤔 | ![]() jxdv 💻 | ![]() kvothe 💻 🤔 | ![]() lukigruszka 💻 | ![]() Abhinav Karn 💻 | ![]() Juraj Virgovič 💻 | ![]() Emmanuel Ferdman 💻 |
![]() ap74062 💻 |