
Wrapper API Python et client en ligne de commande pour les outils hébergés sur spyse.com.
Wrapper API Python et client en ligne de commande pour les outils hébergés sur spyse.com.
« Spyse est un développeur de solutions DAAS (Data-As-A-Service) complètes pour les professionnels de la sécurité Internet, les administrateurs système d'entreprise et à distance, les fournisseurs de certificats de chiffrement SSL / TLS, les centres de données et les analystes commerciaux. Toutes les solutions en ligne de Spyse sont représentées par des services thématiques disposant d'une plateforme unique pour collecter, traiter et agréger l'information. » - spyse.com
Prend en charge les API suivantes :
domains_starts_with* (bibliothèque uniquement)pip3 install spyse.py
pip3 install --no-cache-dir spyse.py
-target-param-page-apikey--rawSpyse vous permet de rechercher dans sa base de données des IP, des plages IP, des noms de domaine, des URL, etc. L'argument paramètre est destiné à spécifier le type de votre entrée.
À partir du 6 juillet 2019, la plupart des fonctions ne nécessitent pas que vous définissiez un paramètre, sauf si vous souhaitez remplacer celui par défaut.
Par exemple, le paramètre par défaut pour --domains-on-ip est ip, mais vous pouvez remplacer ce paramètre et rechercher par CIDR ou par organisation à la place. Vous ne devriez avoir besoin de faire cela que si vous obtenez un message d'erreur, car la détection des paramètres a également été ajoutée.
La détection est assez simple :
# detect whether input is cidr or ip or search query (q)
if "/" in args.target:
param = "cidr"
elif ":" in args.target:
param = "q"
else:
param = "ip"
La détection varie d'une fonction à l'autre, car certaines fonctions nécessitent des paramètres par défaut différents.
cidrdomainippageurlhashqTout comme Shodan, Spyse permet d'utiliser des requêtes de recherche.
spyse -target "org: Microsoft" --ssl-certificates
spyse -target xbox.com --subdomains
spyse -target 52.14.144.171 --domains-on-ip
spyse -target hotmail.com --ssl-certificates
spyse -target "org: Microsoft" --ssl-certificates
spyse -target xbox.com --dns-all
spyse -target hackerone.com -param domain --subdomains
export SPYSEKEY="yourkeyhere"
spyse -target xbox.com -apikey $SPYSEKEY -page 2 ---ssl-certificates
Initialement, lorsque j'ai décidé d'écrire ce client, je voulais vraiment qu'il se concentre sur la flexibilité en ligne de commande, c'est pourquoi il y a l'option --raw. De là, vous pouvez travailler avec le JSON brut retourné par l'API.
spyse -target hackerone.com --dns-soa --raw | jq
spyse -target hackerone.com -param domain --subdomains --raw | aquatone
usage: spyse [-h] [-target TARGET] [-param PARAM] [-page PAGE]
[-apikey APIKEY] [--raw] [--dns-ptr] [--dns-soa] [--dns-mx]
[--dns-aaaa] [--dns-ns] [--dns-a] [--dns-txt] [--dns-all]
[--domains-with-same-ns] [--domains-using-as-mx]
[--domains-on-ip] [--domains-with-same-mx]
[--domains-using-as-ns] [--download-dns-aaaa]
[--download-dns-soa] [--download-dns-ns] [--download-dns-ptr]
[--download-dns-mx] [--download-dns-a] [--download-dns-txt]
[--download-dns-all] [--ip-port-lookup]
[--ip-port-lookup-aggregate] [--ssl-certificates] [--subdomains]
Client for Spyse.com
optional arguments:
-h, --help show this help message and exit
-target TARGET target
-param PARAM parameter to use (ip, domain, cidr, url, hash)
-page PAGE page
-apikey APIKEY set the api key
--raw show raw json
--dns-ptr show dns ptr records
--dns-soa show dns soa records
--dns-mx show dns mx records
--dns-aaaa show dns aaaa records
--dns-ns show dns ns records
--dns-a show dns a records
--dns-txt show dns txt records
--dns-all show all dns records
--domains-with-same-ns
show domains with same ns
--domains-using-as-mx
show domains using as mx
--domains-on-ip show domains on ip
--domains-with-same-mx
show domains with same mx
--domains-using-as-ns
show domains using as ns
--download-dns-aaaa download dns aaaa records
--download-dns-soa download dns soa records
--download-dns-ns download dns ns records
--download-dns-ptr download dns ptr records
--download-dns-mx download dns mx records
--download-dns-a download dns a records
--download-dns-txt download dns txt records
--download-dns-all download all dns records
--ip-port-lookup show ip port lookup
--ip-port-lookup-aggregate
show ip port lookup aggregate
--ssl-certificates show ssl certificates associated with a target
--subdomains show subdomains
Usage: spyse -target hackerone.com --subdomains
from spyse import spyse
s = spyse()
subdomains = s.subdomains("xbox.com", param="domain")
from spyse import spyse
# Using the API key allows us to go through multiple pages of results
s = spyse('API_TOKEN_GOES_HERE')
subdomains = s.subdomains_aggregate("xbox.com", param="domain", page=2)
from spyse import spyse
s = spyse()
results = s.domains_on_ip("172.217.1.0/24", param="cidr")
from spyse import spyse
s = spyse()
results = []
with open("domains.txt") as d:
for line in d:
# default value for param="domain", so we don't
# need to specify here
r = s.subdomains_aggregate(line)
results.append(r)
print(results)
Toutes les méthodes listées sur https://api-doc.spyse.com/
API_METHODS = {
"DNS_PTR": "/dns-ptr",
"DNS_SOA": "/dns-soa",
"DNS_MX": "/dns-mx",
"DNS_AAAA": "/dns-aaaa",
"DNS_NS": "/dns-ns",
"DNS_A": "/dns-a",
"DNS_TXT": "/dns-txt",
"domains_with_same_ns": "/domains-with-same-ns",
"domains_using_as_mx": "/domains-using-as-mx",
"domains_on_ip": "/domains-on-ip",
"domains_with_same_mx": "/domains-with-same-mx",
"domains_using_as_ns": "/domains-using-as-ns",
"download_dns_aaaa": "/download-dns-aaaa",
"download_dns_soa": "/download-dns-soa",
"download_dns_ns": "/download-dns-ns",
"download_dns_ptr": "/download-ns-ptr",
"download_dns_mx": "/download-dns-mx",
"download_dns_a": "/download-dns-a",
"download_dns_txt": "/download-dns-txt",
"download_domains_with_same_mx": "/download-domains-with-same-mx",
"download_domains_on_ip": "/download-domains-on-ip",
"download_domains_with_same_ns": "/download-domains-with-same-ns",
"download_domains_using_as_ns": "/download-domains-using-as-ns",
"download_domains_using_as_mx": "/download-domains-using-as-mx",
"ip_port_lookup_aggregate": "/ip-port-lookup-aggregate",
"ip_port_lookup": "/ip-port-lookup",
"ssl_certificates": "/ssl-certificates",
"ssl_certificate_raw": "/ssl-certificate-raw",
"ssl_certificates_aggregate": "ssl-certificates-aggregate",
"ssl_certificate": "/ssl-certificate",
"ssl_certificate_public_key": "/ssl-certificate-public-key",
"ssl_certificate_json": "/ssl-certificate-json",
"subdomains": "/subdomains",
"subdomains_aggregate": "/subdomains-aggregate",
"domains_starts_with": "/domains-starts-with",
"domains_starts_with_aggregate": "/domains-starts-with-aggregate"
}