maltego: Open-source intelligence and forensics platform

maltego: Open-source intelligence and forensics platform

Maltego is a graphical link-analysis and data-mining tool developed by Paterva (now Maltego Technologies). Unlike the other command-line tools in this chapter, Maltego is a full desktop GUI application built around the concept of “Transforms” — modular pieces of code that take an input entity (a domain, person, email address, phone number, IP, or organization) and return related entities, which are then plotted as nodes on an interactive visual graph. This graph-based approach makes Maltego exceptionally effective for visualizing complex relationships between people, infrastructure, and organizations that would be difficult to interpret from raw command-line text output.

Installation

Maltego is pre-installed on Kali Linux (Community Edition). It requires a free Maltego account (or paid license for commercial editions) to activate.

# Kali/Debian (pre-installed, or reinstall)
sudo apt update && sudo apt install maltego -y

# Manual download (Community/Classic/XL editions)
# Download the .deb installer from https://www.maltego.com/downloads/
sudo dpkg -i Maltego.v4.x.x.deb
sudo apt-get install -f   # resolve any missing dependencies

Launch Maltego:

maltego

On first launch, Maltego prompts for account registration/login and Transform Hub configuration.

Syntax

Maltego is a GUI application and does not use traditional CLI flags for its core workflow; the “syntax” of Maltego is expressed through its graph-building interface:

  1. Drag an entity type (Domain, Person, Email Address, IP Address, etc.) onto the graph canvas.
  2. Set the entity’s value (e.g., example.com).
  3. Right-click the entity and select a Transform (or Transform Set) to run against it.
  4. Review returned entities added to the graph, and repeat the process recursively.

A CLI companion, maltego-cli, exists for launching pre-built graphs or automating certain headless operations in enterprise deployments, but the primary interaction model is the GUI.

Command-Line Options

Flag/ComponentDescription
maltegoLaunches the Maltego desktop GUI application
maltego --resetResets local configuration back to defaults
-J -jdkhome PATHSpecify a custom Java Development Kit path (Maltego runs on Java/NetBeans platform)
Transform HubGUI panel for installing/enabling Transform packs (e.g., “Have I Been Pwned”, “Shodan”, “SocialLinks”)
MachinesPre-built automated Transform sequences (e.g., “Footprint L1/L2/L3”) runnable with a single click
Entity PaletteGUI panel listing all available entity types to drag onto the graph
Transform ManagerGUI screen for configuring API keys required by specific Transforms

Basic Usage

  1. Launch Maltego and log in:
maltego
  1. Create a new graph, drag a Domain entity onto the canvas, and set its value to example.com.
  2. Right-click the entity → All TransformsTo DNS Name – NS (name server).
  3. Maltego populates the graph with connected NS record entities discovered for the domain.

Practical Examples

Example 1 — Domain footprint using a built-in Machine

Example 2 — Email address to social media accounts

Example 3 — Domain to subdomains via DNS Transforms

Example 4 — IP address to netblock and co-hosted domains

Example 5 — Organization to employee names (using a paid Transform pack)

Example 6 — Phone number to carrier/location info

Example 7 — Combining multiple entity types into one investigation graph

Common Use Cases

Automation with Bash

While Maltego is primarily GUI-driven, its graphs and Transform results can be exported and post-processed with bash:

Export a Maltego graph to CSV/GraphML from within the GUI (File → Export), then process it:

#!/bin/bash
# maltego_export_parse.sh
# Extract all "Email Address" entity values from an exported Maltego CSV
EXPORT_FILE="maltego_export.csv"
grep -i "EmailAddress" "$EXPORT_FILE" | cut -d',' -f2 | sort -u

Batch-launch Maltego with a pre-saved graph file for a repeatable starting point:

#!/bin/bash
# open_maltego_graph.sh
GRAPH_FILE="$1"
maltego --open "$GRAPH_FILE"

Note: Full headless/CLI automation of Transform execution typically requires Maltego’s commercial API/TDS (Transform Distribution Server) integration rather than the desktop Community Edition.

Tips and Best Practices

Troubleshooting

ProblemCauseFix
“Could not log in” on startupMaltego account credentials invalid or network/firewall blocking Maltego’s auth serversVerify credentials at maltego.com; check outbound HTTPS connectivity
Transform returns “0 results”Required API key not configured for that Transform’s data sourceOpen Transform Manager and add the relevant API key
Graph becomes slow/unresponsive with many nodesExtremely large graph exceeding available system memoryIncrease Java heap size in Maltego’s config, or split the investigation into multiple smaller graphs
Community Edition Transform limits reachedFree CE tier restricts number of results per Transform run (typically 12)Upgrade to Maltego Classic/XL/Pro licensing for unrestricted result counts
Application fails to launchJava runtime issues or corrupted installReinstall via sudo apt install --reinstall maltego, ensure a compatible JDK is present

References

Exit mobile version