asn-infrastructure-mapping について
ドメインから ASN、CIDR 範囲をたどり、組織の IP インフラをホストやサービスまで調査するセキュリティスキルです。TLD の拡張や関連組織の探索にも対応します。
主な機能
- 01ドメインから ASN と CIDR 範囲を特定
- 02CIDR を IP アドレスに展開
- 03逆引き DNS によるホスト名の発見
- 04同一名の別 TLD ドメインの列挙
- 05ドメイン、IP、サービスの対応付け
活用シーン
- 01少数のサブドメイン一覧を超えて調査範囲を拡大
- 02確認済み IP 範囲内の非標準ポートサービスを発見
- 03子会社や海外ドメインのインフラを調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ uphiago/ recon-skills --skill asn-infrastructure-mappingインストール後、Claude Code で/asn-infrastructure-mappingを入力して読み込まれたか確認します。
詳細
ASN インフラストラクチャマッピング
ドメインから ASN(自律システム番号)をたどり、CIDR 範囲を抽出して、所有するすべての IP ブロックにあるホスト名とサービスをすべて検出することで、組織の IP インフラストラクチャ全体をマッピングします。TLD の拡張も行い、別々のインフラストラクチャを持つ異なるトップレベルドメイン上の関連ドメインを見つけます。
使用するタイミング
- 対象ドメインがあり、組織が所有する IP をすべて検出したい場合。
- パッシブなサブドメイン列挙でホストがわずかしか見つからず、残りが関連 TLD や別の IP 範囲に存在する可能性がある場合。
- 対象の ASN が判明しており、完全な CIDR ブロックに展開できる場合。
- 標準外ポートのサービスが、Web のみを対象とした偵察では見つからない場合。
- 買収した子会社や国際ドメインが、セキュリティの弱い別の ASN 上に存在する可能性がある場合。
前提条件
terminalの whois、dnsx、mapcidr、httpx、asnmap。- 対象ドメイン、または組織に属することが判明している IP。
- Shodan API キー(任意、より詳細な OSINT 用)。
クイック検出
# Start: domain → IP → ASN → CIDR ranges
IP=$(dig target.com +short | head -1)
ASN=$(whois $IP | grep -i "origin\|OriginAS" | awk '{print $NF}' | head -1)
echo "ASN: $ASN"
whois -h whois.radb.net -- "-i origin $ASN" | grep -Eo "([0-9.]+){4}/[0-9]+" | sort -u
手順
フェーズ 1 — ドメインから ASN の検出
# asnmap — automated domain → ASN
asnmap -d target.com
# Manual whois approach
IP=$(dig target.com +short | head -1)
whois $IP | grep -iE "origin|OriginAS|route:|descr:" | head -10
# spk — finds all ASNs for a company by name (including subsidiaries)
spk -json -s "Company Name"
# Webtools
# https://bgp.he.net — search by company name
# https://asnlookup.com — search by org name, ASN, or CIDR
# https://bgp.tools — modern BGP explorer
フェーズ 2 — ASN から CIDR 範囲の取得
# asnmap — direct CIDR extraction
asnmap -a AS33905 -silent > cidr_ranges.txt
# RADB whois — full route objects
whois -h whois.radb.net -- "-i origin AS33905" \
| grep -Eo "([0-9.]+){4}/[0-9]+" \
| sort -u >> cidr_ranges.txt
# metabigor — multi-source IP intelligence
echo "Company Name" | metabigor net --org -o cidr_ranges.txt
echo "ASN33905" | metabigor net --asn -o cidr_ranges.txt
フェーズ 3 — CIDR から個別の IP の取得
# mapcidr — split CIDR into flat IP list
cat cidr_ranges.txt | mapcidr -silent > all_ips.txt
wc -l all_ips.txt
# prips — alternative IP generator
while read cidr; do prips "$cidr"; done < cidr_ranges.txt >> all_ips.txt
# Scan discovered IPs for live web services
cat all_ips.txt | httpx \
-ports 80,443,8080,8443,3000,5000,8000,8888,9090,9443 \
-status-code -title -web-server -silent \
-o live_ip_services.txt
フェーズ 4 — IP 範囲の逆引き DNS
# dnsx PTR — resolve hostnames from IP blocks
cat cidr_ranges.txt | dnsx -silent -resp-only -ptr > ptr_domains.txt
# Filter for target-related hosts
grep -i "target" ptr_domains.txt > ptr_target.txt
# hakrevdns — reverse DNS at scale
hakrevdns -d target.com -R resolvers.txt
# resolveDomains — check which IPs serve target content
resolveDomains -d all_subs.txt > resolved.txt
awk '{print $3}' resolved.txt | sort -u > unique_ips.txt
フェーズ 5 — TLD の拡張
# tldbrute — discover all registered TLD variants
tldbrute -d target.com
# Manual IANA TLD list approach
wget -q https://data.iana.org/TLD/tlds-alpha-by-domain.txt
ROOT=$(echo "target.com" | cut -d. -f1)
cat tlds-alpha-by-domain.txt | tr '[:upper:]' '[:lower:]' \
| while read tld; do echo "$ROOT.$tld"; done \
| httpx -silent -mc 200 > tlds_alive.txt
# Apply to all known subdomains
cat all_subs.txt | while read sub; do
cat tlds-alpha-by-domain.txt | tr '[:upper:]' '[:lower:]' \
| sed "s/^/$sub./"
done | dnsx -silent > subs_tld_expanded.txt
フェーズ 6 — アーキテクチャの可視化
# Map which domains belong to which IP
cat unique_ips.txt | while read ip; do
echo -n "$ip: "
grep -l "$ip" resolved.txt 2>/dev/null | tr '\n' ' '
echo
done > ip_to_domain_map.txt
# Identify shared infrastructure (one IP serving multiple domains — CDN or reverse proxy)
awk '{if (NF > 2) print}' ip_to_domain_map.txt > shared_infra.txt
# Scan non-web ports on ALL discovered IPs
naabu -l all_ips.txt -p - -rate 1000 -c 50 -exclude-ports 80,443 -o all_services.txt
フェーズ 7 — サブ組織の検出
# Extract all company/organization names from whois
cat all_ips.txt | while read ip; do
whois $ip 2>/dev/null | grep -iE "OrgName|org-name|descr:" | head -1
done | sort -u > subsidiary_names.txt
# For each subsidiary, repeat the ASN → CIDR pipeline
cat subsidiary_names.txt | while read org; do
metabigor net --org "$org" >> expanded_cidr.txt
done
注意点
- CIDR 範囲が非常に大きい場合があります(例:AWS)。 ホスティングプロバイダー全体ではなく、対象に属すると確認できた IP 範囲のみをスキャンしてください。
- RADB の whois データは古い場合があります。 複数のソース(bgp.he.net、Censys、Shodan)と照合してください。
- TLD の拡張ではノイズが多くなります。 通常、有用な結果が得られるのは .com/.org/.net/.io/.dev のみです。
- 逆引き DNS で内部ホスト名が見つかる場合があります。 外部偵察では慎重に取り扱ってください。こうした情報漏えい自体が発見事項となります。
- サブ組織の検出によって、スコープ外の対象に行き着く場合があります。 スキャンする前に必ず関係性を確認してください。
検証
- CIDR 範囲を少なくとも 2 つのソース(whois と bgp.he.net、または asnmap)で確認しました。
- 検出した IP の逆引き DNS で、対象に関連するホスト名が返されました。
- TLD の拡張により、関連 TLD 上の稼働中のドメインが見つかりました。
- Web サービスのスキャンで、標準外ポート上の固有のアプリケーションが特定されました。
- インフラストラクチャ全体をマッピングします:ドメイン → IP → サービス → 脆弱性。
関連スキル
subdomain-enumeration— IP インフラストラクチャに範囲を広げる前に、初期サブドメインリストを作成します。origin-ip-discovery— CIDR 範囲が判明したら、CDN の背後にあるオリジン IP を特定します。vhost-enumeration— 検出した IP をスキャンし、隠れた仮想ホストを見つけます。port-mass-scan— 検出したすべての IP をスキャンし、公開されているサービスを調べます。
コメント
Markdown 対応