Jedną z rzeczy, które muszę od czasu do czasu robić, jest na przykład znalezienie subdomen witryny.
Zaczynając od example.com
- sub1. example.com
- inny.example.com
- inny.example.com
Szukam dodatkowych sposobów przeprowadzenia zwiadu na tych celach i chcę uzyskać listę wszystkich subdomen domeny.
Obecnie robię kilka rzeczy, w tym
- używanie maltego do indeksowania informacji
- używanie wyszukiwarek do wyszukiwania subdomen
- indeksowanie linków do witryn
- badanie rekordów DNS
- Badanie nieprawidłowo skonfigurowanych certyfikatów SSL
- Zgadywanie rzeczy, takich jak „vpn.example.com”
Myślę, że jest więcej niż te, które znalazłem do tej pory, ale teraz nie mam pomysłów.
Komentarze
Odpowiedź
Często zdarza się, że pentester może znaleźć subdomeny dla witryny. Dlatego napisałem narzędzie, SubBrute , które robi to całkiem dobrze, jeśli tak powiem. Krótko mówiąc, jest to lepsze niż inne narzędzia (fierce2), ponieważ jest dużo szybsze, dokładniejsze i łatwiejsze w obsłudze z . To narzędzie zawiera listę prawdziwych subdomen uzyskanych z przeszukiwania sieci. Ta lista subdomen jest ponad 16 razy większa niż fierce2, a jej wyczerpanie w połączeniu domowym zajmie około 15 minut. Wynik to czysta lista oddzielona znakami nowego wiersza, która jest łatwa w użyciu jako dane wejściowe dla innych narzędzi, takich jak nmap lub skaner luk w zabezpieczeniach aplikacji internetowych.
Komentarze
- Świetnie, ' sprawdzę to. Masz pojęcie, jak dobrze wypada to w porównaniu z ' knock '?
- @ D3C4FF pukanie to bzdura.
- Cała chwała Rookowi. Użyłem tego narzędzia w teście na żywo dzisiaj i zadziałało jak urok. Pominęła tylko jedną z dwóch tuzinów subdomen, która została nazwana mywebreading
- @ D3C4FF do diabła, tak, ' cieszę się, że tak się stało sztuczka;)
- @Rook tylko krótki pomysł dotyczący subbrute, dodaj również opcję rozwiązania (i wydrukowania) adresu IP ze znalezionych nazw hostów. Dokonałem tej zmiany i pomogło to w kilku testach, w których pewne zakresy były poza zakresem, mimo że były subdomenami. Jeszcze raz dziękujemy!
Odpowiedź
1. Transfer strefy
Niektóre serwery nazw pozwalają na transfer stref DNS do dowolnej osoby w Internecie, zwykle nieumyślnie. W tym pytaniu jest wyjaśnione dokładniej: Atak transferu strefy DNS .
Narzędzia do transferów stref
druga odpowiedź na to pytanie wspomina o tym, jak przetestować to w systemie Windows i Linux:
Windows:
nslookup > server <DNS you are querying> > set type=any > ls -d <target>
Unix (nslookup jest przestarzały w systemie Unix):
dig -t axfr @<DNS you are querying> <target>
(Edytowałem wersję uniksową, ponieważ -axfr
nie działa. Musiałem określić -t axfr
.)
2. Spacer po strefie DNSSEC
DNSSEC podpisuje rekordy DNS, więc możesz być pewien, że otrzymałeś poprawną odpowiedź (cóż, biorąc pod uwagę pewne korzenie zaufania i pośredników). Ale jak udowodnić, że czegoś nie ma, np. szukając nonexistentsub.example.com
, w jaki sposób serwer nazw example.com
dowodzi nieistnienia subdomeny? Nie ma na sobie klucza podpisu (podpisywanie odbywa się po aktualizacji strefy przez administratorów).
W odpowiedzi na Jak działa DNSSec? Czy są znane ograniczenia lub problemy?, / u / tylerl wyjaśnia:
Oczywiście ta odpowiedź wymaga do podpisania, ale generalnie sam serwer DNS nie ma dostępu do Twojego klucza podpisu i nie może podpisać odpowiedzi w locie; wszystkie podpisy są tworzone ” offline ” z wyprzedzeniem. Dzięki temu twój klucz nie zostanie ujawniony, jeśli twój serwer DNS zostanie przejęty.
Zamiast tego, alfabetujesz swoje subdomeny i mówisz ” dla każdej nazwy między mail.example. pl i pop.example.com nie istnieją żadne inne subdomeny ” i podpisz to twierdzenie. Następnie, gdy ktoś zapyta o nachos.example.com, możesz po prostu udzielić mu tej odpowiedzi (która została już podpisana), a klient to wie, ponieważ nachos.example.com mieści się w kolejności alfabetycznej między mail.example.com a pop.example.com, wtedy ” ta domena nie istnieje ” odpowiedź jest uważana za poprawnie podpisaną i faktycznie pochodzi od Ciebie.
Problematyczne jest to, że mając zestaw tych negatywnych odpowiedzi, które wyraźnie stwierdzają, że ” nie ma odpowiedzi między X i Y, możesz łatwo określić, które domeny istnieje dla całej strefy. Wiesz, że ” X ” istnieje, i wiesz, że ” Y ” istnieje i wiesz, że nie ma między nimi nic innego. Po prostu zrób trochę więcej losowego szturchania, a szybko będziesz w stanie skompilować listę wszystkich rekordów które istnieją.
Rekord określający ” do momentu, gdy pop.example.com nie ma nic „, nazywa się NSEC (następny bezpieczny rekord).
Zaprojektowano obejście tego problemu: NSEC3. Haszuje nazwy, więc mail
zamienia się w b83a88...
, a pop
zamienia na b21afc...
. Wyobraź sobie, że są to dwie jedyne subdomeny, a podpisana odpowiedź będzie zawierać informację ” między b21afc...
a „. Znowu działa alfabetycznie i możesz uzyskać je wszystkie, ale tym razem będziesz musiał złamać każdy hash, zanim dowiesz się, jakie są subdomeny.
Z mojego doświadczenia wynika, że większość ma włączone rozszerzenie NSEC3.
Narzędzia do chodzenia po strefie
NSEC3Walker wykonuje zarówno wyliczenie, jak i pękanie. Nie mogę ręczyć za to, jak wydajne jest crackowanie, ale zdecydowanie opiera się ono wyłącznie na CPU. Ponieważ NSEC3 używa SHA1 (przynajmniej pierwotnie), prawdopodobnie istnieją lepsze programy do łamania zabezpieczeń.
dnsrecon
również wydaje się być w stanie to zrobić: dnsrecon -z -d example.com
. Nie wiem, czy istnieje oficjalna witryna z informacjami, ale w Debian Stretch, Buster i Bullseye mogę apt install dnsrecon
.
3. Wyszukiwania wsteczne w podsieci
Zgadując kilka, często można znaleźć odpowiedzi z podobnego zakresu. Jeśli wiesz, że www.
istnieje i mail.
istnieje i oba są rozwiązywane jako 192.168.3.x
, to może być więcej. Spróbuj wyszukać wszystkie adresy w zakresie 192.168.3.0-255
(/24
), a prawdopodobnie znajdziesz więcej subdomen. Możesz również wypróbować zapytanie WHOIS dotyczące adresu IP, aby znaleźć granice zakresu (jeśli mają własny blok).
Narzędzia do wyszukiwania wstecznego
dnsrecon
może to zrobić:
dnsrecon -t rvl -r 192.168.1.0/24
Gdzie -t rvl
oznacza ” wpisz reverse-lookup ” i -r
przekazuje zakres adresów IP w notacji CIDR. Nie wiem jeśli istnieje oficjalna witryna internetowa z informacjami, ale w Debian Stretch, Buster i Bullseye mogę apt install dnsrecon
.
4. Rekordy usług DNS
Można ustawić rekordy SRV (usługi) do wykrywania usług, na przykład _sip._tcp.example.com
może wskazywać na sipserver.example.com
na porcie 5060. Ponieważ nazwy usług (” sip
” w tym przykładzie) to zazwyczaj standardowe zarejestrowane w IANA, możemy je iterować.
Narzędzia do przeszukiwania rekordów SRV
dnsrecon
może to zrobić:
dnsrecon -t srv -d example.com
Zajmie podzbiór istniejących nazw usług, wybranych przez nieznane metoda, jak wspomniano na jej stronie podręcznika (man dnsrecon
).
5. Inne metody
Wspomniałeś już o niektórych z nich.Nie będę wchodził w szczegóły, ponieważ są one dość oczywiste i albo zależą od aplikacji działającej na miejscu docelowym (takim jak FTP), zależą od strony trzeciej, albo naprawdę nie ma o nich wiele do powiedzenia .
-
Wyniki wyszukiwania mogą ujawniać subdomeny. Ponownie,
dnsrecon
może to zrobić za pomocą opcji-t goo
(używa w szczególności Google). -
Sprawdzenie innych TLD dla tej samej nazwy może ujawnić inne warianty lub adresy IP. Na przykład. jeśli
example.com
istnieje,example.org
również może istnieć.dnsrecon
może to również zrobić za pomocądnsrecon -t tld -d example.com
. -
Przeszukiwanie witryny lub znajdowanie odniesień gdzie indziej może dać wskazówki. (Potrzebna pomoc: jakiego narzędzia użyć?)
-
Przeglądanie certyfikatów TLS często przynosi rezultaty. Upewnij się, że sprawdziłeś porty dla HTTPS, SMTP (S), FTP (S) itd. I użyj STARTTLS.
-
Istnieją narzędzia innych firm, które mogą wyświetlać subdomeny w domena. Ich metody są mniej jasne, ale często ich częścią jest przeszukiwanie internetu i zapisów historycznych (może transfer domeny był kiedyś możliwy?). (Potrzebna pomoc: jakieś zalecenia? Pamiętam tylko, że to istnieje.)
6. Zgadywanie.
Ostatnią opcją jest po prostu zgadywanie, albo za pomocą słownika (polecam to), albo brutalnej siły. Jest to trudniejsze dzięki zastosowaniu symboli wieloznacznych, chociaż wiele narzędzi próbuje to wykryć i rozwiązać.
Narzędzia do zgadywania / brutalnego wymuszania
Fierce zostało stworzone do tego: https://github.com/mschwager/fierce
Jest instalowany domyślnie w Kali Linux.
Jako / u / rook wspomniano w innej odpowiedzi w tym wątku , napisali w tym celu Subbrute: https://github.com/TheRook/subbrute
dnsrecon
może to zrobić za pomocą dnsrecon -t brt -d example.com
. Użyj -f
to ” Filtruj rekordy wyszukiwania domeny Brute Force, które są tłumaczone na adres IP zdefiniowany za pomocą symboli wieloznacznych podczas zapisywania rekordów ” (cytując jego stronę podręcznika). Możesz przekazać -D
dla pliku słownika.
Dodatek: dict ionaries
Nadal szukam dobrych słowników (do zgadywania / brutalnego wymuszania), ale oto kilka, których jestem świadomy. Pomóż mi uzupełnić tę listę! Im większe, tym lepsze, o ile są posortowane według prawdopodobieństwa.
- Repozytorium Fiercea zawiera kilka słowników: / tree / master / lists
- „ Bitquark ”przeprowadził analizę najczęściej używanych subdomen co zaowocowało następującymi listami: https://github.com/bitquark/dnspop/tree/master/results . Posty na blogu wyglądają na dziwne wyniki, więc nie jestem pewien jakości tych list.
-
dnsrecon
zawiera listę o nazwienamelist.txt
.dpkg -L dnsrecon
pokazuje, gdzie jest zainstalowany. Jest posortowany alfabetycznie. - Subbrute ma krótką i długą listę: https://github.com/TheRook/subbrute
Odpowiedź
Jason Haddix napisał moje ulubione narzędzie do wykrywania subdomen / nazw hostów, które zależy od najnowszej wersji rec-ng – dostępne tutaj –
https://github.com/jhaddix/domain
subbrute jest przyzwoity, fierce -dns <domain>
działa świetnie, dnsmap <domain> -r file.txt
jest również poprawne i nie widzę powodu, by nie lubić knock -wc <domain>
(chociaż inne cechy pukania mogą być posądzać). Jednak wszystkie te narzędzia wykorzystują techniki, które pokazują ich wiek. Sztuczka niektórych z tych ulepszeń ataków polega na stworzeniu dostosowanego pliku z nazwami hostów, które są dostosowane specjalnie do celu.
Jednak piłą łańcuchową do wykrywania DNS jest dnsrecon. Robi wszystko.
Możesz również rozważyć ofertę komercyjną, taką jak RiskIQ, która może zrobić znacznie więcej niż wszystkie te narzędzia. Ich techniki obejmują wiele ankiet, o których większość z was by nie pomyślała.
[AKTUALIZACJA] Innym ulubionym (w przypadku nazw hostów, a nie głównie subdomen – czy OP jest zainteresowany obydwoma?) To – https://github.com/tomsteele/blacksheepwall
Odpowiedź
Spróbowałbym tego z pukaniem , ale uważaj: istnieje ryzyko, że znajdziesz się na czarnej liście.
Niestety nie da się tego obejść bruteforsing, jeśli transfer stref nie działa.
Komentarze
- To narzędzie jest niskiej jakości; SubBrute jest dużo lepsze.
Odpowiedź
Przekroczenie stosu – zasugerował Paul Melici przy użyciu WolframAlpha .(Zrzuty ekranu mojego autorstwa)
Wprowadź domenę w polu wyszukiwania i przeprowadź wyszukiwanie. (Np.
stackexchange.com
)W trzeciej sekcji od góry (o nazwie „Statystyki internetowe dla całej wymiany stosów. pl „) kliknij Subdomeny
W sekcji Subdomains kliknij Więcej
Będziesz mógł tam zobaczyć listę subdomen. Chociaż podejrzewam, że nie wyświetla WSZYSTKICH subdomen.
Komentarze
- jest to wspomniane w pierwszym komentarzu
Odpowiedź
Spójrz na http://ha.ckers.org/fierce/ . Może zająć plik słownika, a także brutalną siłę. Jest również zawarty w Kali.
Odpowiedź
Początkowo często używam pasywnej bazy danych DNS, aby znaleźć subdomeny dla witryny. Wadą tej metody jest to, że można znaleźć tylko witryny wymienione w bazie danych. Ale zaletą jest to, że możesz znaleźć witryny, które nie są wymienione na żadnej liście słów.
Niektóre bazy danych w celach informacyjnych:
https://www.virustotal.com/en/domain/stackexchange.com/information/
Odpowiedź
Łatwo. Wpisz adres strony do wolframalpha. I kliknij przycisk „subdominy”.
Przykład; https://www.wolframalpha.com/input/?i=www.imdb.com
Kliknij „Subdomeny”, aby wyświetlić subdomeny witryny.
Ponadto wolfram alfa ma interfejs API, jeśli chcesz go dosięgnąć i używać. Mam nadzieję, że to pomoże …
Komentarze
- Zagubione – jeśli możesz to rozwinąć, wyjaśniając, czym zajmuje się Wolfram, ta odpowiedź może otrzymać pozytywne głosy.
- Wydaje się, że link ” subdomeny ” występuje tylko w niektórych domenach?
usage()
). Sądząc po kodzie źródłowym, zbiera dane z trzech głównych wyszukiwarek (yahoo, msn, google) i dla mnie niejasnej witrynypgp.rediris.es
, która wydaje się być narzędziem do usuwania wiadomości e-mail.