Szybkie przejęcie subdomeny 2000 $

Nov 28 2022
Bug Bounty — od zera do BOHATERA
WHOAMI Nazywam się Alexandar Thangavel AKA ValluvarSploit, pełnoetatowy łowca błędów i trener. Uwielbiam rekonesans.

KIM JESTEM

Nazywam się Alexandar Thangavel AKA ValluvarSploit, pełnoetatowy łowca błędów i trener. Uwielbiam rekonesans. Jestem założycielem i CEO ValluvarSploit Security. W ValluvarSploit Security zapewniamy szkolenie Bug Bounty podczas indywidualnych sesji online. Aby uzyskać więcej informacji, sprawdź naszą stronę LinkedIn.

CEL

Dzisiaj podzielę się tym, jak znalazłem lukę w zabezpieczeniach Fastly związaną z przejęciem subdomeny i jak zdobyć nagrodę w wysokości pierwszych czterech cyfr. Zacznijmy.

HISTORIA

Rozpoczęło się to w niedzielę 2 października 2022 r. Dzień zaczął się jak zwykle. Obudziłem się o 6 rano, skończyłem rutynową pracę, sprawdziłem saldo danych mobilnych (pozostało 1,3 GB), włączyłem mobilny hotspot, podłączyłem laptopa i wznowiłem polowanie na prywatnym programie. Spędziłem kilka godzin nad aplikacją docelową, ale nic nie znalazłem, więc zrobiłem sobie krótką przerwę. Co najmniej raz na sześć miesięcy wracałem do moich starych prywatnych programów. Przejrzałem więc moje prywatne zaproszenia, wybrałem stary program i zacząłem wyliczać subdomeny (nazwijmy nasz cel jako redacted.com).

PRZEJĘCIE SUBDOMY

Przejęcie subdomeny ma miejsce, gdy atakujący przejmuje kontrolę nad subdomeną domeny. Dzieje się tak z powodu błędnej konfiguracji / błędów DNS.

WYLICZANIE SUBDOMENY

Zacząłem wyliczanie subdomen za pomocą narzędzi Google Dorking, OWASP Amass i Gobuster .

# Passive Subdomain Enumeration using Google Dorking
site:*.redacted.com -www -www1 -blog
site:*.*.redacted.com -product

# Passive Subdomain Enumeration using OWASP Amass
amass enum -passive -d redacted.com -config config.ini -o amass_passive_subs.txt

# Subdomain Brute force using Gobuster
gobuster dns -d redacted.com -w wordlist.txt - show-cname - no-color -o gobuster_subs.txt

# Merging subdomains into one file
cat google_subs.txt amass_passive_subs.txt gobuster_subs.txt | anew subdomains.txt

# Enumerate CNAME records
./cname.sh -l subdomains.txt -o cnames.txt

# We can use HTTPX tool as well
httpx -l subdomains.txt -cname cnames.txt

# Probe for live HTTP/HTTPS servers
httpx -l subdomains.txt -p 80,443,8080,3000 -status-code -title -o servers_details.txt

Zacząłem analizować plik cnames.txt i znalazłem jedną subdomenę, która wskazywała na dwa różne rekordy CNAME. Uruchomiłem polecenie Dig na subdomenie i otrzymałem następujące informacje,

dig next.redacted.com CNAME

      
                
DNS query for CNAME record

Zacząłem analizować plik servers_details.txt w poszukiwaniu interesujących rzeczy i znalazłem tę linię. Zwróć uwagę na kod stanu i tytuł witryny.

https://next.redacted.com [500] [246] [Fastly error: unknown domain next.redacted.com]

W większości przypadków nie możemy przejąć usługi Fastly. Na przykład poniższy przypadek,

Ale jeśli domena nie jest już zajęta przez innego klienta, możemy przejąć domenę i całkowicie przejąć subdomenę.

POTWIERDZENIE PODATNOŚCI

Poszedłem na oficjalną stronę Fastly i wykonałem poniższe kroki:
1. Założyłem konto na fastly.com używając tymczasowej poczty.
2. Zalogowałem się do mojego Fastly Dashboard i kliknąłem przycisk „Utwórz usługę dostawy”.
3. Wpisałem docelową nazwę subdomeny (next.redacted.com) i kliknąłem przycisk Dodaj.

Spodziewałem się wyświetlenia komunikatu o błędzie („domena jest już zajęta przez innego klienta”), ale komunikatu o błędzie nie było. Zostałem przekierowany na następną stronę „Strona hostów”. Byłem zaskoczony.

Zareklamowana domena na Fastly

KROKI TWORZENIA POC

Po potwierdzeniu luki zalogowałem się na moim serwerze VPS i utworzyłem katalog o nazwie „hosting”. Następnie w katalogu „hosting” utworzono prosty plik HTML o nazwie „index.html”.

mkdir hosting

cd hosting

nano index.html

<!DOCTYPE html>

<html>
    <head><title>STO PoC</title></head>
    <body>
        <h1>ValluvarSploit PoC</h1>
    </body>
</html>

python3 -m http.server 80

Konfiguracja VPS

Po kilku sekundach otworzyłem nowe okno przeglądarki i odwiedziłem „http://next.redacted.com/index.html” strona. Mój plik PoC został pomyślnie wyrenderowany. Napisałem szczegółowy raport i przesłałem go na HackerOne.

Dowód koncepcji

NAUKA POPRZEZ MONITOROWANIE LOGÓW SERWERA

Utrzymywałem działanie usługi Fastly przez 3 dni i monitorowałem logi serwera w poszukiwaniu poufnych informacji. Fajnie było oglądać inne metodologie łowców błędów.

Monitorowanie logów serwera dla zabawy

NAGRODA

Moje zgłoszenie zostało sklasyfikowane jako luka o WYSOKIEJ wadze i nagrodzona 2000 USD w ciągu 10 dni.

Nagroda

KLUCZOWE NA WYNOS

1. Powróć do swoich starych celów co najmniej raz na 6 miesięcy.
2. Wyliczenie subdomeny jest kluczowe. Wyliczaj jak najwięcej subdomen.
3. Nie poddawaj się.

Dziękuję za poświęcenie czasu na przeczytanie mojego wpisu.

Obserwuj mnie na:

Świergot

Linkedin

Od Infosec Writeups: Codziennie w Infosec pojawia się wiele rzeczy, za którymi trudno nadążyć. Dołącz do naszego cotygodniowego biuletynu, aby otrzymywać wszystkie najnowsze trendy Infosec w formie 5 artykułów, 4 wątków, 3 filmów, 2 repozytoriów GitHub i narzędzi oraz 1 powiadomienie o pracy ZA DARMO!