- Install Python 3.7 or newer
- Clone repo to a local folder and change into the path
git clone https://github.com/sds-osint/transforms/
cd transforms
- Install dependencies in virtualenv
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
- Start Docker Compose
sudo docker compose up -d && sudo docker compose logs -f
There are two ways to add transforms to Maltego: they can be installed as local transforms or they can be added to the TDS.
- On the top ribbon under Transforms, select "New Local Transform" and fill out the popup as below:
- Give it a memorable Display name and Description and select the appropriate Input entity type.
- Command: path to your python executable. For example, "/usr/bin/python3" or "venv/bin/python3" or "python (if it's install on PATH)"
- Parameters: path to your transorms' python file, without the extension. For example, "project.py local get_robots"
- Working directory: path to the transforms' folder. For example, "transforms/modules/get_robots/transforms/get_robots"
Maltego has a public Transform server available at https://public-tds.paterva.com/. Must have an account and have a server available.
- Select Seeds and create a new seed. Give it a memorable name.
- Select Transforms and Add transform
- Give the transform a memorable name and display
- Add the transform URL. This will be either the IP address or domain (if there is one) that points to your Maltego server, followed by the path to the transform. That path is initially printed out when starting the docker container. For example, "https://tds.yourdomain.com/run/get-robots" or "http://123.456.78.9/run/get-robots".
- Select the most fitting Input Entity and any relevant Output entities.
- Add it to the previously created seed.
- At the bottom of the Maltego Transform Hub page under Internal Hub Items, click the big Plus sign.
- Add the Transform Name and Transform UI Display to the ID and Name fields in the Add Transform Seed window.
- Copy the transform seed URL from the public TDS page and put it in the Seed URL box.
- Fill out the rest of the fields as best appropriate.
- Let it process and then install the transform.
We advise the following structure. In any case, the transforms need to be in a dir called transforms
.
modules
└── <module_name>
└── transforms
└── <transform_name>.py
You can optionally specify a whitelist
or blacklist
in project.py
. To disable them set them to None
To create a module
- use the python script
create_module.py
. The script needs following positional arguments: name author owner.
usage: create_module.py [-h] name author owner
positional arguments:
name The module name
author your email address, alias or Fullname
owner You, or the organization you write this module for
e.g.
source venv/bin/activate
python3 create_module.py my_module [email protected] "Me Inc."
- Edit in the top-level of the
extensions.py
file and add following lines:
from modules.{name}.extensions import {name}_registry
registry.include_registry("{name}", {name}_registry
e.g. name = 'cisa'
from meta_registry import MetaRegistry
from modules.cisa.extensions import cisa_registry
registry = MetaRegistry()
registry.include_registry("cisa", cisa_registry)