Skip to content

CERT-Polska/Artemis

Repository files navigation

logo

Artemis is a modular vulnerability scanner. It's the tool that powers CERT PL scanning activities by checking various aspects of website security and building easy-to-read messages ready to be sent to the scanned organizations.

Note

We run free on-line training sessions on how to setup and use Artemis. If you are a national or governmental CSIRT, you can sign up here.

If you want to use additional modules that weren't included here due to non-BSD-compatible licenses, browse to the Artemis-modules-extra repository.

Artemis is experimental software, under active development - use at your own risk.

To chat about Artemis, join the Discord server:

Features

For an up-to-date list of features, please refer to the documentation. The most important one is the possibility to easily export reports such as:

The following addresses contain version control system data:

Making a code repository public may allow an attacker to learn the inner workings of a system, and if it contains passwords or API keys - also gain unauthorized access. Such data shouldn't be publicly available.

The following addresses contain old Joomla versions:

If a site is no longer used, we recommend shutting it down to eliminate the risk of exploitation of known vulnerabilities in older Joomla versions. Otherwise, we recommend regular Joomla core and plugin updates.

The possibility to automatically prepare such reports enabled us to notify entities in our constituency about hundreds of thousands of vulnerabilities.

Screenshots

Artemis - scan

Development

If you want to develop Artemis, remember to change the Docker Compose file so that the Artemis image is built locally (from the code you are changing) not downloaded from Docker Hub.

Tests

To run the tests, use:

./scripts/test

Code formatting

Artemis uses pre-commit to run linters and format the code. pre-commit is executed on CI to verify that the code is formatted properly.

To run it locally, use:

pre-commit run --all-files

To set up pre-commit so that it runs before each commit, use:

pre-commit install

Building the docs

To build the documentation, use:

cd docs
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
make html

How do I write my own module?

Please refer to the documentation.

Contributing

Contributions are welcome! We will appreciate both ideas for new Artemis modules (added as GitHub issues) as well as pull requests with new modules or code improvements.

However obvious it may seem we kindly remind you that by contributing to Artemis you agree that the BSD 3-Clause License shall apply to your input automatically, without the need for any additional declarations to be made.

Contributors

Huge thanks to the following people that contributed to Artemis development, especially the KN Cyber science club of Warsaw University of Technology that initiated the project!

kazet
kazet

💻 📖 🤔 🚇 👀 📢
Adam Kliś
Adam Kliś

💬 💻 🤔 👀 📢
anna1492
anna1492

🐛 💻
Michał M.
Michał M.

💻 🤔
cyberamt
cyberamt

💻 🤔
martclau
martclau

💻 🤔
szymsid
szymsid

💻 👀
bulek
bulek

💻 👀
Michel Le Bihan
Michel Le Bihan

💻
Grzegorz Eliszewski
Grzegorz Eliszewski

💻 🤔 📦
kshitij kapoor
kshitij kapoor

💻 🤔
Delfin
Delfin

💻
Bornunique911
Bornunique911

💻
Ridham Bhagat
Ridham Bhagat

💻
Mateusz Borkowski
Mateusz Borkowski

💻 🤔