
Wrapper API Python e client da riga di comando per gli strumenti ospitati su spyse.com.
Wrapper API Python e client da riga di comando per gli strumenti ospitati su spyse.com.
"Spyse è uno sviluppatore di soluzioni DAAS (Data-As-A-Service) complete per professionisti della sicurezza informatica, amministratori di sistema aziendali e remoti, fornitori di certificati di crittografia SSL/TLS, data center e analisti aziendali. Tutte le soluzioni online di Spyse sono rappresentate da servizi tematici che dispongono di un'unica piattaforma per la raccolta, l'elaborazione e l'aggregazione delle informazioni." - spyse.com
Supporta le seguenti API:
domains_starts_with* (solo libreria)pip3 install spyse.py
pip3 install --no-cache-dir spyse.py
-target-param-page-apikey--rawSpyse ti permette di cercare nel suo database IP, intervalli IP, nomi di dominio, URL, ecc. L'argomento param è inteso per specificare il tipo del tuo input.
A partire dal 6 luglio 2019, la maggior parte delle funzioni non richiede di impostare un parametro a meno che tu non voglia sovrascrivere quello predefinito.
Ad esempio, il parametro predefinito per --domains-on-ip è ip, tuttavia puoi sovrascrivere questo parametro e cercare per CIDR o organizzazione. Dovresti farlo solo se stai ricevendo un messaggio di errore, poiché è stato aggiunto anche il rilevamento automatico del parametro.
Il rilevamento è piuttosto semplice:
# 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"
Il rilevamento varia da funzione a funzione, poiché alcune funzioni richiedono parametri predefiniti diversi.
cidrdomainippageurlhashqProprio come Shodan, Spyse consente di utilizzare query di ricerca.
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
Inizialmente, quando ho deciso di scrivere questo client, volevo davvero che si concentrasse sulla flessibilità nella riga di comando, ecco perché c'è l'opzione --raw. Da lì puoi lavorare con il JSON grezzo restituito dall'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 per Spyse.com
argomenti opzionali:
-h, --help mostra questo messaggio di aiuto ed esci
-target TARGET target
-param PARAM parametro da usare (ip, domain, cidr, url, hash)
-page PAGE pagina
-apikey APIKEY imposta la chiave API
--raw mostra JSON grezzo
--dns-ptr mostra record DNS PTR
--dns-soa mostra record DNS SOA
--dns-mx mostra record DNS MX
--dns-aaaa mostra record DNS AAAA
--dns-ns mostra record DNS NS
--dns-a mostra record DNS A
--dns-txt mostra record DNS TXT
--dns-all mostra tutti i record DNS
--domains-with-same-ns
mostra domini con stesso NS
--domains-using-as-mx
mostra domini che usano come MX
--domains-on-ip mostra domini su IP
--domains-with-same-mx
mostra domini con stesso MX
--domains-using-as-ns
mostra domini che usano come NS
--download-dns-aaaa scarica record DNS AAAA
--download-dns-soa scarica record DNS SOA
--download-dns-ns scarica record DNS NS
--download-dns-ptr scarica record DNS PTR
--download-dns-mx scarica record DNS MX
--download-dns-a scarica record DNS A
--download-dns-txt scarica record DNS TXT
--download-dns-all scarica tutti i record DNS
--ip-port-lookup mostra ricerca porta IP
--ip-port-lookup-aggregate
mostra aggregato ricerca porta IP
--ssl-certificates mostra certificati SSL associati a un target
--subdomains mostra sottodomini
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)
Tutti i metodi elencati su 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"
}