1001 Pen Test oraz Bug Bounty Tips & Tricks #4 – (Sub)domeny w czasie rzeczywistym
Napisał: Patryk Krawaczyński
21/03/2020 w Pen Test 1 komentarz. (artykuł nr 727, ilość słów: 342)
K
to ma informację ten ma władzę. Jeśli pamiętamy serwis umożliwiający nam rekonesans przez listę certyfikatów, czy innego tego typu rozwiązania – to możemy dojść do wniosku, że wszystkie te rozwiązania mają opóźnienia w czasie. No chyba, że będziemy codziennie wykonywać z nich zrzut danych i porównywać różnicę, ale to może być trochę czasochłonne. Czy istnieje możliwość stworzenia prostego mechanizmu, który będzie w czasie rzeczywistym śledził dla nas pojawienie się domen lub subdomen będących w centrum naszego zainteresowania ?
Otóż istnieje serwis CERTSTREAM, który w czasie rzeczywistym śledzi strumień aktualizacji dzienników wydawania certyfikatów. Dzięki temu możemy zobaczyć na żywo dla jakich domen są wystawiane (lub odnawiane) certyfikaty SSL. W dodatku oferuje on bardzo proste biblioteki, które pozwalają budować odpowiednie filtry danych przy minimalnym wysiłku. Jako przykład podam bibliotekę w języku Python, która jednocześnie może być uruchomiona z linii poleceń. Jej instalacja polega na wydaniu poleceń:
apt install -y python3-pip jq pip3 install certstream
Od tego momentu możemy śledzić wszystkie certyfikaty, które są wydawane (lub przedłużane) dla (sub)domen. Format w jakim będziemy wypluwać dane to JSON dlatego zainstalowaliśmy dodatkowo program jq pełniący rolę procesora danych w tym formacie – dzięki niemu wytniemy tylko interesujące nas wartości z wybranego klucza:
certstream --json | jq -r '{ domains: .data.leaf_cert.all_domains }| .[][]'
Uruchamiając powyższe polecenie powinniśmy zobaczyć strumień nazw domenowych, które przesuwają nam w bardzo szybkim tempie ekran terminala. W tym momencie wystarczy dodać po potoku dowolny program obsługujący wyrażenia regularne. Na przykład:
certstream --json | jq -r '{ domains: .data.leaf_cert.all_domains }| .[][]' \ | egrep -E \.ibm\.com$
po kilku godzinach pozwoliło złapać subdomenę:
2132039.eu-de.e2e.certificate-manager.test.cloud.ibm.com
Wedle potrzeb możemy sporządzić całą listę domen / subdomen, które chcemy monitorować. W przypadku pozytywnego dopasowania możemy wyzwolić alarm lub skaner podatności, który powiadomi nas o po zakończonym przebiegu o wyniku.
Więcej informacji: CertStream, h1domains
Facebook udostępnia również tą samą funkcjonalność z możliwością subskrypcji na daną domenę.