Machinae


Описание Machinae

Machinae — сборщик сведений, связанных с безопасностью.

Machinae — это инструмент для сбора сведений по кусочкам данных из общедоступных сайтов / каналов: IP адреса, доменные имена, URL, email адреса, хэши файлов и SSL отпечатки. Программа была вдохновлена утилитой Automater, другого замечательного инструмента по сбору информации. Проект Machinae был рождён из желания улучшить Automater в четырёх областях:

  1. Codebase — Доведение Automater до совместимости с python3 и делание кода более «питомным»
  2. Конфигурация — Использование более понятного человеку формата (YAML)
  3. Ввод — Поддержка из коробки парсинга JSON без необходимости писать регулярные выражения, но по прежнему поддерживает при необходимости выскабливание регулярными выражениями
  4. Вывод — Поддержка дополнительных типов вывода, включая JSON, при этом внешний вывод делается опциональным

Домашняя страница: https://github.com/HurricaneLabs/machinae

Автор:

Лицензия: MIT

Справка по Machinae

использование: 

machinae [-h] [-c КОНФИГУРАЦИЯ] [--nomerge] [-d ЗАДЕРЖКА] [-f ФАЙЛ] [-i INFILE]
                [-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
                [-s САЙТЫ] [-a AUTH] [-H HTTP_PROXY]
                [--dump-config | --detect-otype]
                ...
позиционные аргументы:
  цели

опциональные аргументы:
  -h, --help            show this help message and exit
  -c КОНФИГУРАЦИЯ, --config КОНФИГУРАЦИЯ
  --nomerge
  -d ЗАДЕРЖКА, --delay ЗАДЕРЖКА
  -f ФАЙЛ, --file ФАЙЛ
  -i INFILE, --infile INFILE
  -o {D,J,N,S}
  -O {ipv4,ipv6,fqdn,email,sslfp,hash,url}, --otype {ipv4,ipv6,fqdn,email,sslfp,hash,url}
  -q, --quiet
  -s САЙТЫ, --sites САЙТЫ
  -a AUTH, --auth AUTH
  -H HTTP_PROXY, --http-proxy HTTP_PROXY
  --dump-config
  --detect-otype

Руководство по Machinae

Страница man отсутствует.

Конфигурационный файл Machinae

Machinae поддерживает простую систему слияния конфигураций, что позволяет вам делать подстройку конфигурации без изменения machinae.yml с которым поставляется программа, что позволяет переключаться между разными конфигурациями. Это работает так: ищется общесистемный файл конфигурации (по умолчанию /etc/machinae.yml), который объединяется с общесистемной локальной конфигурацией (/etc/machinae.local.yml) и, наконец, с пользовательской локальной конфигурацией (~/.machinae.yml). Общесистемный конфигурационный файл также может быть размещён в текущей рабочей директории, его можно установить переменной окружения MACHINAE_CONFIG, или, конечно, использованием опцией командной строки -c или --config. Слияние конфигураций можно отключить опцией --nomerge, которая сделает так, что Machinae будет загружать только общесистемную конфигурацию (или одну ту, которая указана в командной строке).

В качестве примера, допустим, нам нужно включить сайт Fortinet Category, который по умолчанию отключён. Вы можете отредактировать /etc/machinae.yml, но эти изменения буду перезаписаны обновлением. Вместо этого вы можете разместить следующее в /etc/machinae.local.yml или в ~/.machinae.yml:

fortinet_classify:
  default: true

Или, наоборот, для отключения сайта, к примеру, Virus Total pDNS:


vt_ip:
  default: false
vt_domain:
  default: false

Использование Machinae

Использование Machinae очень схоже с Automater:

использование: machinae [-h] [-c КОНФИГУРАЦИЯ] [-d ЗАДЕРЖКА] [-f ФАЙЛ] [--nomerge] [-o {D,J,N}]
                        [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q] [-s САЙТЫ]
                        цель [цели ...]
  • Подробности об опциях -c/--config и --nomerge смотрите выше.
  • Machinae поддерживает опцию -d/--delay как и Automater. Тем не менее, по умолчанию Machinae использует 0.
  • Вывод Machinae контролируется двумя аргументами:
  • -o контролирует формат вывода и за ним может идти один символ, указывающий желаемый тип вывода:
  • N — это вывод по умолчанию ("Normal")
  • D — это вывод по умолчанию, но символы точки заменяются
  • J — это вывод JSON
  • -f/--file указывает файл, в который нужно записать вывод. По умолчанию это "-" для stdout (стандартного вывода).
  • Machinae попытается автоматически определить тип переданной цели (Machinae обращается к целям как "observables" и к типу как "otype"). Это определение может быть перезаписано опцией -O/--otype. Вариантами являются ipv4, ipv6, fqdn, email, sslfp, hash, url.
  • По умолчанию, Machinae работает в вербальном режиме. В этом режиме, она будет выводить в консоли информацию о статусе служб, к которым она делает запрос по мере этих запросов. Этот вывод всегда будет записываться в стандартный вывод (stdout) независимо от настроек вывода. Для отключения вербального режима, используйте -q
  • По умолчанию, Machinae пройдётся по всем службам, которые применимы к каждой цели otype и не помечены как "default: false". Для модификации этого поведения вы можете:
  • передать разделённый запятой список сайтов для обхода (используйте ключ верхнего уровня из конфигурации).
  • Передать специальное ключевое слово all для прохода по всем службам, включая те, которые отмечены как "default: false"

Помните, что в обоих случаях, всё ещё применяется валидация otype.

  • Machinae поддерживает проход по HTTP proxy, для этого в командной строке используйте аргумент -H/--http-proxy. Если прокси не указано, machinae будет искать стандартные переменные окружения HTTP_PROXY и HTTPS_PROXY, а также менее стандартные переменные окружения http_proxy и https_proxy.
  • Наконец, нужно передать список целей. Все аргументы, кроме тех, которые перечислены выше, будут интерпретироваться как цели.

Источники данных «из коробки»

Machinae идёт с поддержкой «из коробки» следующих источников данных:


  • IPVoid
  • URLVoid
  • URL Unshortener (http://www.toolsvoid.com/unshorten-url)
  • Malc0de
  • SANS
  • FreeGeoIP (freegeoip.io)
  • Fortinet Category
  • VirusTotal pDNS (через web scrape - нужно раскомментировать)
  • VirusTotal pDNS (через JSON API)
  • VirusTotal URL Report (через JSON API)
  • VirusTotal File Report (через JSON API)
  • Reputation Authority
  • ThreatExpert
  • VxVault
  • ProjectHoneypot
  • McAfee Threat Intelligence
  • StopForumSpam
  • Cymru MHR
  • ICSI Certificate Notary
  • TotalHash (по умолчанию отключено)
  • DomainTools Parsed Whois (Требует API ключ)
  • DomainTools Reverse Whois (Требует API ключ)
  • DomainTools Reputation
  • IP WHOIS (Использует интерфейсы RIR REST)

Дополнительные источники данных на подходе.

Базовая HTTP аутентификация и конфигурация

Machinae поддерживает базовую HTTP аутентификацию через флаг --auth/-a для сайтов, которые её требуют. Вам нужно создать файл YAML с вашими учётными данными, которые будут включать ключи к сайтам, которые требуют учётных данных, и список из двух элементов: имени пользователя и пароля или API ключа. Например, для сайта PassiveTotal это могло бы выглядеть так:

passivetotal: ['myemail@example.com', 'my_api_key']

Внутри настройки сайта под request вы увидите ключ примерно так:

json:
  request:
    url: '...'
    auth: passivetotal

auth: passivetotal указывает на включ внутри конфига аутентификации, переданного через командную строку.

По умолчанию отключны

Следующие сайты отключены по умолчанию:

  • Fortinet Category (fortinet_classify)
  • Telize Geo IP (telize)
  • TotalHash (totalhash_ip)
  • DomainTools Parsed Whois (domaintools_parsed_whois)
  • DomainTools Reverse Whois (domaintools_reverse_whois)
  • DomainTools Reputation (domaintools_reputation)
  • PassiveTotal Passive DNS (passivetotal_pdns)
  • PassiveTotal Whois (passivetotal_whois)
  • PassiveTotal SSL Certificate History (passivetotal_sslcert)
  • PassiveTotal Host Attribute Components (passivetotal_components)
  • PassiveTotal Host Attribute Trackers (passivetotal_trackers)
  • MaxMind GeoIP2 Passive Insight (maxmind)
  • FraudGuard (fraudguard)
  • Shodan (shodan)

Выводные форматы

Machinae идёт с ограниченным набором форматов вывода: нормальный, нормальный с экранированием и JSON. Создатели планируют добавить дополнительные форматы вывода в будущем.

Примеры запуска Machinae

Сбор информации о сайте mi-al.ru:

machinae mi-al.ru
[.] Requesting http://www.spamhaus.org/query/domain/mi-al.ru (GET)
[.] Requesting http://www.urlvoid.com/scan/mi-al.ru (GET)
[.] Requesting http://www.toolsvoid.com/unshorten-url (POST)
[.] Requesting https://malc0de.com/database/index.php?search=mi-al.ru (GET)
[.] Requesting https://freegeoip.io/json/mi-al.ru (GET)
[.] Requesting https://www.fortiguard.com/ip_rep/index.php?data=mi-al.ru&lookup=Lookup (GET)
[.] Requesting https://www.virustotal.com/vtapi/v2/domain/report?domain=mi-al.ru&apikey=308211ef74a1044ea98134424b3d20769451d25beda0b808a8b61036badc0ea1 (GET)
[.] Requesting http://www.reputationauthority.org/lookup.php?ip=mi-al.ru (GET)
[.] Requesting https://www.mcafee.com/threat-intelligence/domain/default.aspx?domain=mi-al.ru&region=us (GET)
[.] Requesting https://cymon.io/api/nexus/v1/domain/mi-al.ru (GET)
********************************************************************************
* Information for mi-al.ru
* Observable type: fqdn (Auto-detected: True)
********************************************************************************

[!] Error from Spamhaus Domain BL: 503 Server Error: Service Temporarily Unavailable for url: https://www.spamhaus.org/query/domain/mi-al.ru
[+] URLVoid results
    [-] IP from URLVoid: 185.26.122.50
    [-] Domain Age from URL Void: 2009-07-31 (7 years ago)
    [-] Geo Coordinates from URLVoid: 55.75 / 37.6166
    [-] Country from URLVoid: Russian Federation
    [-] Country from URLVoid: Russian Federation
[+] URL Unshorten results
    [-] Unshortened URL: https://mi-al.ru/
[-] No Malc0de results
[+] freegeoip.io results
    [-] GeoIP Country Code: RU
    [-] GeoIP Country: Russia
    [-] GeoIP Region Code: 
    [-] GeoIP Region: 
    [-] GeoIP City: 
    [-] GeoIP Zip Code: 
    [-] GeoIP Latitude: 55.75
    [-] GeoIP Longitude: 37.6166
    [-] GeoIP Timezone: 
[+] Fortinet Category results
    [-] Fortinet URL Category: Illegal or Unethical
[+] VirusTotal pDNS results
    [-] pDNS data from VirusTotal: ('2014-09-30', '185.26.122.110')
    [-] pDNS data from VirusTotal: ('2016-02-25', '185.26.122.50')
    [-] Websense ThreatSeeker category: uncategorized
[-] No Reputation Authority results
[-] No McAfee Threat results
[-] No Cymon.io Domain Lookup results

Сбор информации об IP 185.117.153.79:

machinae 185.117.153.79
[.] Requesting http://www.spamhaus.org/query/ip/185.117.153.79 (GET)
[.] Requesting http://www.ipvoid.com/scan/185.117.153.79 (GET)
[.] Requesting https://malc0de.com/database/index.php?search=185.117.153.79 (GET)
[.] Requesting https://isc.sans.edu/api/ip/185.117.153.79 (GET)
[.] Requesting https://freegeoip.io/json/185.117.153.79 (GET)
[.] Requesting https://www.fortiguard.com/ip_rep/index.php?data=185.117.153.79&lookup=Lookup (GET)
[.] Requesting https://www.virustotal.com/vtapi/v2/ip-address/report?ip=185.117.153.79&apikey=308211ef74a1044ea98134424b3d20769451d25beda0b808a8b61036badc0ea1 (GET)
[.] Requesting http://www.reputationauthority.org/lookup.php?ip=185.117.153.79 (GET)
[.] Requesting https://www.projecthoneypot.org/ip_185.117.153.79 (GET)
[.] Requesting https://www.mcafee.com/threat-intelligence/ip/default.aspx?ip=185.117.153.79&region=us (GET)
[.] Requesting https://cymon.io/api/nexus/v1/ip/185.117.153.79/events/ (GET)
[.] Requesting https://cymon.io/api/nexus/v1/ip/185.117.153.79/domains/ (GET)
[.] Requesting https://cymon.io/api/nexus/v1/ip/185.117.153.79/urls/ (GET)
[.] Requesting https://www.threatcrowd.org/searchApi/v2/ip/report/?ip=185.117.153.79 (GET)
[.] Requesting https://api.passivetotal.org/v2/ssl-certificate/history?query=185.117.153.79 (GET)
[.] Requesting https://api.fraudguard.io/ip/185.117.153.79 (GET)
********************************************************************************
* Information for 185.117.153.79
* Observable type: ipv4 (Auto-detected: True)
********************************************************************************

[+] IP Whois results
    [-] ASN Information: ('48666', '185.117.152.0/22', '2015-09-16', 'ripencc', 'RU')
    [-] Network Information: ('185.117.152.0/23', 'MAROSNET-185-117-152-0', '185.117.152.0 - 185.117.153.255')
    [-] Registration Info: ('Marosnet enterprise network', '2015-12-06', '2015-12-06')
    [-] Registration Locality: RU
[!] Error from Spamhaus Zen BL: 503 Server Error: Service Temporarily Unavailable for url: https://www.spamhaus.org/query/ip/185.117.153.79
[+] IPVoid results
    [-] ISP from IPVoid: Unknown
[-] No Malc0de results
[!] Error from SANS: Timeout
[+] freegeoip.io results
    [-] GeoIP Country Code: RU
    [-] GeoIP Country: Russia
    [-] GeoIP Region Code: 
    [-] GeoIP Region: 
    [-] GeoIP City: 
    [-] GeoIP Zip Code: 
    [-] GeoIP Latitude: 55.75
    [-] GeoIP Longitude: 37.6166
    [-] GeoIP Timezone: 
[+] Fortinet Category results
    [-] Fortinet URL Category: Not Rated
[+] VirusTotal pDNS results
    [-] pDNS data from VirusTotal: ('2016-04-26', 'www.compforman.ru')
[-] No Reputation Authority results
[-] No ProjectHoneypot results
[-] No McAfee Threat results
[-] No Cymon.io IP Events results
[-] No Cymon.io IP Domains results
[-] No Cymon.io IP URLs results
[-] No ThreatCrowd IP Report results
[-] No PassiveTotal SSL Certificate History results

Установка Machinae

Установка в Kali Linux

sudo apt-get install python3-pip
pip3 install machinae
wget https://raw.githubusercontent.com/HurricaneLabs/machinae/master/machinae.yml -O ~/.machinae.yml
~/.local/bin/machinae kali.tools

Установка в BlackArch

Программа предустановлена в BlackArch.

sudo pacman -S python-pip machinae

Если появляется ошибка, то дополнительно:

sudo pip install machinae

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты Machinae

05

Инструкции по Machinae

Ссылки на инструкции будут добавлены позже.


Близкие программы:

  • Automater (100%)
  • bing-ip2hosts (100%)
  • Recon-ng (100%)
  • Sublist3r (100%)
  • CloudFail (100%)
  • RDPY (RANDOM - 7.5%)
  • Рекомендуется Вам:

    Comments are Closed