NFsec Logo

Rekonesans przez zewnętrzne serwisy

26/12/2017 w Pen Test 1 komentarz.  (artykuł nr 650, ilość słów: 514)

W

poprzednich częściach wspomniałem, o niektórych możliwościach pozyskania informacji za pomocą serwerów DNS oraz śledzenia wydawanych certyfikatów. W tej części zajmiemy się wyciąganiem informacji z innych zewnętrznych serwisów, które również prowadzą monitoring bardzo dużej ilości serwisów.

1. Virustotal:

Za pomocą prostego narzędzia o nazwie jq oraz API serwisu VirusTotal możemy bardzo szybko pozyskać listę subdomen interesującego nas serwisu:

~# curl -s https://www.virustotal.com/ui/domains/nfsec.pl/subdomains\?limit\=10 \ 
| ./jq . | grep \"id\"

"id": "ns1.nfsec.pl",
"id": "www.nfsec.pl",

JSONy na wyjściu możemy też prosto zapisać do dowolnej bazy danych lub systemu śledzenia zmian.

2. Common Crawl Index Server:

Aby przeszukać petabajty Common Crawl wystarczy wykorzystać skrypt napisany w języku Python:

~# ./cdx-index-client.py -c CC-MAIN-2017-43 '*.target.pl'
2017-12-20 23:32:58,490: [INFO]: Getting Index From http://cc.org/CC-MAIN-2017-43-index
2017-12-20 23:32:58,787: [INFO]: Fetching 22 pages of *.target.pl
2017-12-20 23:33:00,929: [INFO]: 1 page(s) of 22 finished
...
2017-12-20 23:33:18,122: [INFO]: 22 page(s) of 22 finished

~# awk -F')' '{print $1}' domain-target.pl-* | sort | uniq -c

 305313 pl,target
   4691 pl,target,archive
   6594 pl,target,cyber
    338 pl,target,faq
    852 pl,target,storage
     18 pl,target,dns
     25 pl,target,help
    510 pl,target,ssl

3. DNSDumpser:

Serwis DNSdumpster jest kolejnym interesującym serwisem, w którym możemy odnaleźć bardzo dużą ilość subdomen konkretnego serwisu. Zamiast interfejsu webowego możemy użyć nieoficjalnego API w języku Python:

>>> from dnsdumpster.DNSDumpsterAPI import DNSDumpsterAPI
>>> res = DNSDumpsterAPI({'verbose': True}).search('nfsec.pl')
[verbose] Retrieved token: wotl7ySbId0RCZ56kIlS7ZhVF1abyHRB
>>> print res

'dns_records': {'host': [{'domain': 'ns1.nfsec.pl'}] }

4. DNSTrails:

Jeśli jesteśmy już przy rekordach DNS warto wspomnieć o DNSTrails, gdzie możemy uzyskać listę subdomen dla wybranej domeny lub po nazwie firmy:

firefox https://dnstrails.com/#/list/domain/uber.com/type/hostname/page/1
curl 'https://app.securitytrails.com/api/whois/list/organization/\
Uber%20Technologies%2C%20Inc.?page=1 | jq .

5. Rekordy ASN:

Poprzez znalezienie numerów ASN (ang. Autonomous System Numbers) jesteśmy w stanie określić bloki sieciowe należące do wybranego serwisu / organizacji. Poprzez rozwiązanie każdego adresu IP z danego bloku możemy uzyskać listę poprawnych subdomen. Wystarczy, że np. za pomocą polecenia host uzyskamy adres IP danej domeny. Adres IP wpisujemy w ASN Lookup v1.0. Po uzyskaniu numeru ASN wprowadzamy go do Hurricane Electric BGP Toolkit, który powinien zwrócić nam bloki sieciowe. Teraz jeśli chcemy odkryć, czy pod listą adresów IP z danego bloku kryją się jakieś subdomeny wystarczy użyć narzędzia nmap:

nmap -sL 192.168.1.0/24

6. Forward DNS projektu Rapid7 Sonar:

Jest to zbiór danych powstałych na podstawie wysyłania żądań DNS typu ANY do domen zebranych z różnych źródeł. Dane są skompresowanymi plikami JSON – należy liczyć się z dość sporym poborem miejsca z dysku (300+ GB po rozpakowaniu):

curl https://scans.io/_d/data/rapid7/sonar.fdns_v2/2017-12-24-1514102401-fdns_any.json.gz \
| gunzip | grep test.net

7. Lista zarejestrowanych domen:

Wyszukiwarka Registered Domain Names zawiera listę zarejestrowanych domen w bazie domains-index.com. Bazę możemy przeszukiwać pod kątem słów kluczowych, które mogą być powiązane z interesującym nas serwisem:

curl 'https://api.domainsdb.info/search?query=nfsec'

Więcej informacji: Sub-domain enumeration

Kategorie K a t e g o r i e : Pen Test

Tagi T a g i : , , , , , , ,

1 komentarz.

  1. Jeśli chodzi o odpytywanie CommonCrawl możemy wykorzystać jeszcze skrypty: cc.py oraz igoturls.py.