Maltego-TRX library is used to rapidly develop transform in a fast paced organization. Using inbuilt discovery protocol these transforms can be seamlessly added to iTDS and then distributed to Maltego Desktop Clients using seeds in a manageable fashion with least complexity. 


This document contains the steps to add Local Transforms written using Maltego-TRX library to iTDS and then distributing these transforms to Maltego Desktop Clients using seeds.

Step 1: 

Setup Maltego-TRX server using any one of method given below:

  1. Python Transform Server using TRX + Apache2
  2. Python Transform Server using TRX + Gunicorn


Step 2: 

Find URL of each transform in following example project structure:

/var/www/TRX
         ├── project.py
         └── transforms
             ├── DNSToIP.py
             ├── DNSToIP.pyc
             ├── GreetPerson.py
             ├── GreetPerson.pyc
             ├── __init__.py
             └── __init__.pyc

Use this command to list all available transform:

cd /var/www/TRX/
python project.py list

You should receive a similar output:

= Transform Server URLs =
/run/dnstoip/: DNSToIP
/run/greetperson/: GreetPerson


= Local Transform Names =
dnstoip: DNSToIP
greetperson: GreetPerson

We will be using the DNSToIP transform by copying "/run/dnstoip/" from line 3.


The complete transform URL then will become

http://192.168.1.9:8080/run/dnstoip/

"192.168.1.9" being server IP or hostname



Step 3:

After setting up iTDS, create an empty seed by going to "View Admin UI" > Seeds > Add Seed



Step 4:

Add transform URL by going to "View Admin UI" > Transforms > Add Transform.



Step 5:

Copy seed and add it to Maltego Desktop Client.

"View Admin UI" > Seeds > "Copy"



Maltego > Transform Hub > Add Transform Seed



Click on install and then finish.



Step 6:

Test by dropping a DNSName entity on to a graph and then right click > TRX Seed Transforms > TRX DNSToIP to get IPv4Address output entity.