
Recolector automatizado de inteligencia de seguridad que consulta fuentes públicas y APIs para obtener datos de amenazas sobre IPs, dominios, URLs, hashes y huellas SSL, con configuración basada en YAML y salida en JSON.

Machinae es una herramienta para recolectar inteligencia de sitios/feeds públicos sobre varios tipos de datos relacionados con la seguridad: direcciones IP, nombres de dominio, URLs, direcciones de correo electrónico, hashes de archivos y huellas digitales SSL. Fue inspirada por Automater, otra excelente herramienta para recolectar información. El proyecto Machinae nació del deseo de mejorar Automater en 4 áreas:
Machinae se puede instalar usando pip3:
pip3 install machinae
O, si te sientes aventurero, se puede instalar directamente desde github:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
Necesitarás tener las dependencias requeridas en tu sistema para
compilar módulos de Python (en sistemas basados en Debian, python3-dev), así como el
paquete de desarrollo libyaml (en sistemas basados en Debian, libyaml-dev).
También querrás obtener el archivo de configuración más reciente y colocarlo en
/etc/machinae.yml.
Machinae soporta un sistema simple de fusión de configuración para permitirte hacer
ajustes a la configuración sin modificar el machinae.yml que te proporcionamos,
facilitando las actualizaciones de configuración. Esto se hace encontrando una configuración
predeterminada a nivel de sistema (por defecto /etc/machinae.yml), fusionando con ella una
configuración local a nivel de sistema (/etc/machinae.local.yml) y finalmente una
configuración local por usuario (~/.machinae.yml). La configuración a nivel de sistema
también puede ubicarse en el directorio de trabajo actual, se puede establecer usando la
variable de entorno MACHINAE_CONFIG, o por supuesto usando las opciones de línea de
comandos -c o --config. La fusión de configuración se puede deshabilitar pasando
la opción --nomerge, lo que hará que Machinae solo cargue la configuración
predeterminada del sistema (o la pasada en la línea de comandos).
Como ejemplo de esto, supongamos que deseas habilitar el sitio Fortinet Category,
que está deshabilitado por defecto. Podrías modificar /etc/machinae.yml, pero estos
cambios se sobrescribirían con una actualización. En su lugar, puedes poner lo siguiente
ya sea en /etc/machinae.local.yml o ~/.machinae.yml:
fortinet_classify:
default: true
O, por el contrario, para deshabilitar un sitio, como Virus Total pDNS:
vt_ip:
default: false
vt_domain:
default: false
El uso de Machinae es muy similar a 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]
...
Consulta arriba para detalles sobre las opciones -c/--config y --nomerge.
Machinae soporta una opción -d/--delay, como Automater. Sin embargo, Machinae
usa 0 por defecto.
La salida de Machinae está controlada por dos argumentos:
-o controla el formato de salida, y puede ir seguido de un solo carácter
para indicar el tipo de salida deseado:
-f/--file especifica el archivo donde se debe escribir la salida. El valor
predeterminado es "-" para stdout.Machinae intentará detectar automáticamente el tipo de objetivo pasado (Machinae
se refiere a los objetivos como "observables" y al tipo como "otype"). Esta detección se puede
anular con la opción -O/--otype. Las opciones se listan en el uso.
Por defecto, Machinae opera en modo verbose. En este modo, mostrará información de estado sobre los servicios que está consultando en la consola a medida que se consultan. Esta salida siempre se escribirá en stdout, independientemente de la configuración de salida. Para deshabilitar el modo verbose, usa .
Machinae viene con soporte incluido de fábrica para las siguientes fuentes de datos:
Con fuentes de datos adicionales en camino.
Machinae soporta HTTP Basic Auth para sitios que lo requieran a través del flag
--auth/-a. Necesitarás crear un archivo YAML con tus credenciales, que incluirá
una clave para el sitio que requiere las credenciales y una lista de dos elementos, nombre de usuario
y contraseña o clave API. Por ejemplo, para el sitio PassiveTotal incluido esto podría verse así:
passivetotal: ['[email protected]', 'my_api_key']
Dentro de la configuración del sitio bajo request verás una clave como:
json:
request:
url: '...'
auth: passivetotal
El auth: passivetotal apunta a la clave dentro de la configuración de autenticación pasada
vía la línea de comandos.
Los siguientes sitios están deshabilitados por defecto
fortinet_classify)telize)totalhash_ip)domaintools_parsed_whois)domaintools_reverse_whois)domaintools_reputation)passivetotal_pdns)passivetotal_whois)passivetotal_sslcert)passivetotal_components)passivetotal_trackers)maxmind)Machinae viene con un conjunto limitado de formatos de salida: normal, normal con escape de puntos, y JSON. Planeamos agregar formatos de salida adicionales en el futuro.
*** PRÓXIMAMENTE ***
La Licencia MIT (MIT)
Copyright (c) 2015 Hurricane Labs LLC
Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, sin limitación, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir a las personas a quienes se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES POR CUALQUIER RECLAMO, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO MODO, DERIVADAS DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.
-qPor defecto, Machinae ejecutará todos los servicios en la configuración que se apliquen al otype de cada objetivo y no estén marcados como "default: false". Para modificar este comportamiento, puedes:
all para ejecutar todos los servicios incluyendo aquellos
marcados como "default: false".Nota que en ambos casos, la validación de otype sigue aplicándose.
Machinae soporta pasar un proxy HTTP en la línea de comandos usando el
argumento -H/--http-proxy. Si no se especifica ningún proxy, machinae buscará las
variables de entorno estándar HTTP_PROXY y HTTPS_PROXY, así como las menos
estándar http_proxy y https_proxy.
Por último, se debe pasar una lista de objetivos. Todos los argumentos distintos de las opciones listadas anteriormente se interpretarán como objetivos.
fraudguard)shodan)