Protipy / Bash / Unix
Lista subdomen cia.gov na podstawie rejestrowanych certyfikatów: curl -s 'https://crt.sh?output=json&q=cia.gov'|jq '.[].name_value'|sort -u
cia.gov
Wstęp
Analogiczny do wersji Powershellowej ( /pl/0064) protip przeszukujący Certificate Transparency Log z wykorzystaniem serwisu crt.sh. Do obslugi JSON API wykorzystany jest curl oraz jq.
🐉 drg@dhq[~]$ curl -s 'https://crt.sh?output=json&q=cia.gov'|jq '.[].name_value'|sort -u
"MAIL2.CIA.GOV"
"cia.gov\nwww.cia.gov"
"crypt.cia.gov"
"ddss.cia.gov"
"ddsstest.cia.gov"
"mail1.cia.gov"
"mivsp.cia.gov"
"mivsp.cia.gov\nwww.mivsp.cia.gov"
"preview-16789456.cia.gov"
"res.cia.gov"
"www.cia.gov"
🐉 drg@dhq[~]$
Serwis crt.sh może nie wyrabiać i rzucać błędami 404 czy 502. Warto więc trochę udoskonalić tego jednolinijkowca, żeby próbował do skutku. Na przykład jak poniżej.
#!/bin/bash
if [ -z "$1" ]; then
echo "Uzycie: $0 <domena>"
exit
fi
while [ 1 ]; do
res=$(curl -s "https://crt.sh?output=json&q=$1" | jq '.[].name_value' 2>/dev/null)
if [ $? -eq 0 ]; then break; fi
echo -n '.'
sleep 1
done
echo -e $res | sed s/\ /\\n/g|tr -d \" | sort -u
Linki
- protip · aptm.in/protip/0064 — analogiczna wersja dla Powershella,
- web · stedolan.github.io/jq/tutorial/ — tutorial jq,
- 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.