Protipy / PowerShell
(irm crt.sh -b @{output="json";q="cia.gov"}).name_value|sort -u - lista domen w cia.gov na podstawie rejestrowanych certyfikatów
(irm crt.sh -b @{output="json";q="cia.gov"}).name_value|sort -u
Wstęp
Serwis crt.sh, to jeden z serwisów umożliwiających przeszukiwanie tzw. Certificate Transparency Logs. W skrócie, kiedy rejestrowany jest publiczny certyfikat SSL/TLS dla danej domeny (i nie tylko), trafia on do zbiorczego loga, który dostępny jest również publicznie.
Powyższy jednolinijkowiec z wykorzystaniem cmdletu Invoke-RestMethod posiadającym alias irm konsumuje JSON API udostępnione przez crt.sh. Na końcu sortuje wyniki i usuwa powtórzenia ( Sort-Object -Unique, w skrócie sort -u).
Zdarza się jednak, że serwis crt.sh nie wyrabia z naszymi zapytaniami, rzucając błędem 502 czy 404, warto więc obsłużyć wyjątki, co mogłoby wyglądać jak poniżej.
for (;;) {
try {
(irm crt.sh -b @{output="json";q="cia.gov"}).name_value|sort -u
break
} catch {
Write-Host -NoNewline "." -ForegroundColor Red
Start-Sleep 1
}
}
Naturalnie, aż się prosi, żeby zamknąć to w prostą funkcję:
function Invoke-CrtShSearch($domain) {
for (;;) {
try {
(irm crt.sh -b @{output="json";q=$domain}).name_value|sort -u
break
} catch {
Write-Host -NoNewline "." -ForegroundColor Red
Start-Sleep 1
}
}
}
Invoke-CrtShSearch cia.gov
Linki
- protip · aptm.in/protip/0065 — analogiczna wersja dla Basha,
- web · certificate.transparency.dev/howctworks/ — wyjaśnienie idei logów CT,
- web · crt.sh — omawiany serwis umożliwiający przeszukiwanie logów CT,
- web · developers.facebook.com/tools/ct/search/ — zasób Facebooka umożliwiający przeszukiwanie logów CT; dodatkowo jest możliwość subskrybowania zapytania, wtedy informacje o nowych certyfikatach otrzymamy jako powiadomienie w aplikacji FB(!),
- web · transparencyreport.google.com/https/certificates — przeszukiwanie logów na stronach Google.