Machinae is a tool for collecting intelligence from public sites/feeds about various security-related pieces of data: IP addresses, domain names, URLs, email addresses, file hashes and SSL fingerprints.
It was inspired by Automater, another excellent tool for collecting information. The Machinae project was born from wishing to improve Automater in 4 areas:
Machinae can be installed using pip3:
pip3 install machinae
Or, if you’re feeling adventurous, can be installed directly from github:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
You will need to have whatever dependencies are required on your system for compiling Python modules (on Debian based systems, python3-dev
), as well as the libyaml development package (on Debian based systems, libyaml-dev
).
You’ll also want to grab the latest configuration file and place it in /etc/machinae.yml
.
Also Read – Passpie : Multiplatform Command-line Password Manager
Machinae supports a simple configuration merging system to allow you to make adjustments to the configuration without modifying the machinae.yml we provide you, making configuration updates a snap.
This is done by finding a system-wide default configuration (default /etc/machinae.yml
), merging into that a system-wide local configuration (/etc/machinae.local.yml
) and finally a per-user local configuration (~/.machinae.yml
).
The system-wide configuration can also be located in the current working directory, can be set using the MACHINAE_CONFIG
environment variable, or of course by using the -c
or --config
command line options.
Configuration merging can be disabled by passing the --nomerge
option, which will cause Machinae to only load the default system-wide configuration (or the one passed on the command line).
As an example of this, say you’d like to enable the Fortinet Category site, which is disabled by default. You could modify /etc/machinae.yml
, but these changes would be overwritten by an update. Instead, you can put the following in either /etc/machinae.local.yml
or ~/.machinae.yml
:
fortinet_classify:
default: true
Or, conversely, to disable a site, such as Virus Total pDNS:
vt_ip:
default: false
vt_domain:
default: false
Machinae usage is very similar to Automater:
usage: machinae [-h] [-c CONFIG] [–nomerge] [-d DELAY] [-f FILE] [-i INFILE] [-v]
[-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
[-s SITES] [-a AUTH] [-H HTTP_PROXY]
[–dump-config | –detect-otype]
…
-c
/--config
and --nomerge
options.-d
/--delay
option, like Automater. However, Machinae uses 0 by default.-o
controls the output format, and can be followed by a single character to indicated the desired type of output:-f
/--file
specifies the file where output should be written. The default is “-” for stdout.-O
/--otype
option. The choices are listed in the usage-q
all
to run through all services including those marked as “default: false”Note that in both cases, otype
validation is still applied.-H
/--http-proxy
argument. If no proxy is specified, machinae will search the standard HTTP_PROXY
and HTTPS_PROXY
environment variables, as well as the less standard http_proxy
and https_proxy
environment variables.Machinae comes with out-of-the-box support for the following data sources:
With additional data sources on the way.
HTTP Basic Authentication and Configuration
Machinae supports HTTP Basic Auth for sites that require it through the --auth/-a
flag. You will need to create a YAML file with your credentials, which will include a key to the site that requires the credentials and a list of two items, username and password or API key. For example, for the included PassiveTotal site this might look like:
passivetotal: [‘myemail@example.com’, ‘my_api_key’]
Inside the site configuration under request
you will see a key such as:
json:
request:
url: ‘…’
auth: passivetotal
The auth: passivetotal
points to the key inside the authentication config passed via the command line.
The following sites are disabled by default
fortinet_classify
)telize
)totalhash_ip
)domaintools_parsed_whois
)domaintools_reverse_whois
)domaintools_reputation
)passivetotal_pdns
)passivetotal_whois
)passivetotal_sslcert
)passivetotal_components
)passivetotal_trackers
)maxmind
)fraudguard
)shodan
)Machinae comes with a limited set of output formats: normal, normal with dot escaping, and JSON. We plan to add additional output formats in the future.
shadow-rs is a Windows kernel rootkit written in Rust, demonstrating advanced techniques for kernel manipulation…
Extract and execute a PE embedded within a PNG file using an LNK file. The…
Embark on the journey of becoming a certified Red Team professional with our definitive guide.…
This repository contains proof of concept exploits for CVE-2024-5836 and CVE-2024-6778, which are vulnerabilities within…
This took me like 4 days (+2 days for an update), but I got it…
MaLDAPtive is a framework for LDAP SearchFilter parsing, obfuscation, deobfuscation and detection. Its foundation is…