ALPHACON BBSGość · pl
← Protipy

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