crt.sh to przede wszystkim zaawansowana platforma do monitorowania i analizy certyfikatów SSL/TLS stworzona przez Sectigo (daswniej Comodo), która pozwala również na przeprowadzanie szczegółowego rekonesansu (np. wyszukiwanie ukrytych subdomen).
Platforma agreguje informacje z publicznych logów Certificate Transparency (CT), dostarczając kompleksowy wgląd w historię i aktualny stan certyfikatów dla dowolnej domeny.
Co to jest crt.sh?
crt.sh to publiczna wyszukiwarka logów Certificate Transparency, która umożliwia śledzenie i analizę certyfikatów SSL/TLS wydanych dla domen internetowych. Platforma indeksuje dane z większości głównych logów CT, oferując kompletny obraz cyfrowej obecności organizacji w kontekście używanych certyfikatów.
Pozwala to również na odnalezienie subdomen, normalnie niemożliwych do pozyskania przy użyciu innych narzędzi, jak np. opisywany w poprzednim wpisie VirusTotal.
Jak działa crt.sh?
Platforma wykorzystuje wielowarstwowe podejście do monitorowania certyfikatów:
- Ciągłe monitorowanie i indeksowanie wszystkich głównych logów Certificate Transparency
- Agregacja i normalizacja danych o certyfikatach z różnych źródeł
- Udostępnianie zaawansowanych funkcji wyszukiwania i filtrowania wyników
- Śledzenie historii certyfikatów dla poszczególnych domen
- Oferowanie dostępu przez API i eksport danych w różnych formatach
Zastosowania crt.sh
- Cyberbezpieczeństwo: Wykrywanie nieautoryzowanych certyfikatów i potencjalnych ataków
- Rekonesans: Identyfikacja subdomen i infrastruktury organizacji
- Monitoring: Śledzenie wygasających certyfikatów i zmian w infrastrukturze
- Audyt: Weryfikacja zgodności z polityką certyfikatów organizacji
- Threat Intelligence: Wykrywanie potencjalnych kampanii phishingowych
Jak korzystać z crt.sh?
Rejestracja i dostęp:
- Wejść na stronę crt.sh
- Nie jest wymagana rejestracja do podstawowego użycia
- Wykorzystać API dla automatyzacji zapytań
Dane dostępowe do bazy danych:
- Host: crt.sh
- Port: 5432
- Baza danych: certwatch
- Użytkownik: guest (bez hasła)
Przykład połączenia przez psql:
psql -h crt.sh -p 5432 -U guest -d certwatch
Przykładowy skrypt w Pythonie:
pythonimport psycopg2 def connect_to_crtsh(): try: conn = psycopg2.connect( host="crt.sh", port=5432, database="certwatch", user="guest" ) return conn except Exception as e: print(f"Błąd połączenia: {e}") return None def query_crtsh(domain): conn = connect_to_crtsh() if conn: try: cur = conn.cursor() query = """ SELECT ci.NAME_VALUE, c.ISSUER_CA_ID, ca.NAME, x509_notBefore(c.CERTIFICATE), x509_notAfter(c.CERTIFICATE) FROM certificate_identity ci JOIN certificate c ON ci.CERTIFICATE_ID = c.ID JOIN ca ON c.ISSUER_CA_ID = ca.ID WHERE ci.NAME_TYPE = 'dNSName' AND lower(ci.NAME_VALUE) LIKE lower(%s) LIMIT 100; """ cur.execute(query, ('%' + domain + '%',)) results = cur.fetchall() return results except Exception as e: print(f"Błąd zapytania: {e}") finally: conn.close() return None
Użyteczne zapytania SQL
Znalezienie wszystkich subdomen:
sqlSELECT DISTINCT(lower(ci.NAME_VALUE)) FROM certificate_identity ci WHERE ci.NAME_TYPE = 'dNSName' AND lower(ci.NAME_VALUE) LIKE lower('%.example.com');
Znalezienie certyfikatów wydanych w ostatnich 90 dniach:
sqlSELECT ci.NAME_VALUE, x509_notBefore(c.CERTIFICATE), x509_notAfter(c.CERTIFICATE) FROM certificate_identity ci JOIN certificate c ON ci.CERTIFICATE_ID = c.ID WHERE ci.NAME_TYPE = 'dNSName' AND x509_notBefore(c.CERTIFICATE) >= NOW() - INTERVAL '90 days' AND lower(ci.NAME_VALUE) LIKE lower('%.example.com');
Ważne uwagi
- Połączenie jest ograniczone do 1000 wierszy na zapytanie
- Zaleca się dodawanie klauzuli LIMIT do zapytań
- Należy unikać zbyt częstych zapytań, aby nie przeciążać serwera
- Niektóre zapytania mogą wymagać optymalizacji ze względu na dużą ilość danych
Kluczowe możliwości
- Kompleksowe wyszukiwanie certyfikatów
- Zaawansowane filtry i opcje wyszukiwania
- Eksport danych w wielu formatach (JSON, CSV)
- Dostęp przez API REST
- Możliwość tworzenia własnych zapytań SQL
Podsumowanie
crt.sh to niezbędne narzędzie w arsenale każdego profesjonalisty zajmującego się cyberbezpieczeństwem. Łącząc potężne możliwości wyszukiwania z prostym interfejsem, platforma stanowi złoty standard w dziedzinie monitorowania certyfikatów SSL/TLS i wykrywania ukrytych elementów infrastruktury.