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

  • Jest inny plik po st on stackoverflow, który ' jest całkiem niezły: [Lista subdomen] [1] [1]: stackoverflow.com/questions/ 131989 / …
  • Więc jest tylko jeden sposób – zrób to jak maltego: zgaduj, zgaduj …
  • Spróbowałbym z pukaniem ( code.google.com/p/knock ), ale uważaj: istnieje ryzyko, że znajdziesz się na czarnej liście.
  • Jest ' skrypt Pythona o nazwie subdomainer.py, który powinien być w stanie ci pomóc … Poszukaj w google
  • Do Twojej wiadomości można go znaleźć w witrynie edge-security.com , ale stary link był umieszczony na stronie wiki SecurityTube jest martwy (choć ma przykład użycia, który jest oczywiście zdefiniowany w usage()). Sądząc po kodzie źródłowym, zbiera dane z trzech głównych wyszukiwarek (yahoo, msn, google) i dla mnie niejasnej witryny pgp.rediris.es, która wydaje się być narzędziem do usuwania wiadomości e-mail.

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.

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)

  1. Wprowadź domenę w polu wyszukiwania i przeprowadź wyszukiwanie. (Np. stackexchange.com )

    Wolfram - strona główna

  2. W trzeciej sekcji od góry (o nazwie „Statystyki internetowe dla całej wymiany stosów. pl „) kliknij Subdomeny

    Wolfram - przycisk Subdomeny

  3. W sekcji Subdomains kliknij Więcej

    Wolfram - przycisk Więcej subdomen

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/

http://www.nonexiste.net/?q=stackexchange.com

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?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *