会社のパブリックネットワークアドレス範囲を特定するには、どの方法を使用できますか?
これはいくつかの要因に依存しています。大企業で完全なサブネットを所有している場合、これらの情報はwhoisレコードに格納されます。 商用ツールを使用して、会社のwhoisレコードのダンプを検索できますまたはその会社の利用可能なすべての公開ホスト名を検索します。通常は、Web、メール、DNSサーバーのアドレスから始めます。
中小企業の場合、ほとんどの場合、パブリックにアクセスできるホストは1つだけです。ほとんどの場合、このアドレスとサーバーはレンタルされているか、共有ホスティングアドレスです。このアドレスの逆ルックアップを実行することで、これを簡単に理解できます。
ドメインに割り当てられているより多くのホストを見つけるには、最新のdnsダンプを censys.io からダウンロードできます(以前はscans.ioで利用可能)次に、ドメインのgrepを実行して、サブドメインを見つけます。次に、一般的に使用されるホスト名をターゲットドメイン名の前に付加することで、dns "bruteforce"を実行することもできます。これは、たとえばdnsreconを使用して行うことができます。
また、ホスティング会社にサブネットが割り当てられている状況もありますが、範囲にはとにかくその会社の複数のWebサイトが含まれます。 IP範囲でその会社のWebサイトを見つけるには、その範囲のすべてのWebサイトのスクリーンショットを作成するEyeWittnessなどのツールを使用できます。言うまでもありません:これは、そのWebサーバーのIPアドレスをアドレスとして使用する場合、仮想ホストでは機能しません。
簡単な方法はありません。会社はおそらくウェブサイトを持っていますが、オンプレミスだけでなく他の場所でもホストされている可能性があります。また、自社の敷地内にある場合でも、ネットワークの他の部分とは異なるIP範囲を持つ場合があります。
たとえば、_Microsoft.com
_のIPアドレスは_104.43.195.251
_であり、_104.40.0.0 - 104.47.255.255
_の範囲内です。ただし、_bing.com
_を検索すると、IPアドレスは_204.79.197.200
_であり、_204.79.195.0 - 204.79.197.255
_の範囲にあります。
上記の範囲は、次のコマンドを使用して見つけることができます:whois $(Dig +short Microsoft.com | head -1)
これは基本的に、「Microsoft.comから1つのIPアドレスを取得して、whoisを実行する」です。
Whois情報には_OrgName: Microsoft Corporation
_も含まれています。MicrosoftからのIP範囲をすべて検索するとどうなりますか?その方法はわかりません(調べる必要があります)が、そのようなことは、Microsoftのような大企業ではうまくいくかもしれません。
ただし、すべての企業が独自のIP範囲を最初から持っているわけではありません。近所で無作為に中小企業を経営し、彼らはおそらくホスティング会社でホストされているウェブサイトを持っているでしょう、それはオフィスの彼らのISPとは異なります。その場合、RDNSが設定されていなければIPアドレス(または範囲)を見つけることは不可能であり、RDNSを使用しても、何百万ものアドレスを逆ルックアップする必要があります。
エンティティごとに次のコマンドを実行できます。 RIPE、ARINなど...アジア太平洋地域での例。
データベースに存在する、指定した文字列を持つすべてのものが返されます。
これは最も安価で最速であり、独自のコードを作成できます。
whois -h whois.apnic.net COMPANYNAME
例:
whois -h whois.apnic.net Microsoft
または、より的を絞った対応が必要な場合
whois -h whois.apnic.net Microsoft | grep inetnum
出力:
% Abuse contact for '58.246.69.164 - 58.246.69.167' is '[email protected]'
inetnum: 58.246.69.164 - 58.246.69.167
netname: Microsoft
country: cn
descr: Microsoft (China) Co., Ltd.
admin-c: YR194-AP
tech-c: YR194-AP
status: ASSIGNED NON-PORTABLE
mnt-by: MAINT-CNCGROUP-SH
last-modified: 2008-12-13T14:48:23Z
source: APNIC
それを行うにはさまざまな方法があります。一般的に受け入れられている方法は、WHOISデータベースの「netblock」情報を使用することです。
このプロセスは、特定の会社では次のようになります。
たとえば、GitHubが運用しているIPアドレスを見つけてみましょう。
まず、GitHub Pages WebサイトのIPアドレスを検索します。
$ Host -t a github.io
github.io has address 185.199.109.153
github.io has address 185.199.108.153
github.io has address 185.199.111.153
github.io has address 185.199.110.153
次に、レコードの1つを選び、Whoisクエリを発行してネットブロック全体を見つけます。
$ whois 185.199.109.153
[...]
inetnum: 185.199.108.0 - 185.199.111.255
netname: US-GITHUB-20170413
country: US
org: ORG-GI58-RIPE
admin-c: GA9828-RIPE
tech-c: NO1444-RIPE
status: ALLOCATED PA
mnt-by: RIPE-NCC-HM-MNT
mnt-by: us-github-1-mnt
created: 2017-04-13T15:36:35Z
last-modified: 2018-12-14T10:48:39Z
source: RIPE
[...]
これで、少なくともgithub.ioのメインWebサーバーを含む、はるかに大きなIPアドレス範囲ができました。
他の範囲を見つけるには、それらが運営するより多くのWebサイト/サーバーを見つけて同じ手法を再利用するか、Whoisデータベース全体のコピーを取得して、GitHubへの参照をすべて探す必要があります。
1つのオンラインサービスは、NetworksDB.ioです(免責事項:私は所有者/開発者です。)
オンラインツールは無料で使用でき、テストに利用できる無料のAPIがあります。たとえば、このページでGithubが所有するすべてのパブリックネットワークとIPアドレスを確認できます。 https://networksdb.io/ip-addresses-of/github-inc
さらに良いことに、コマンドラインから結果を取得します。
$ curl -s https://networksdb.io/ip-addresses-of/github-inc | grep 'IP Range' | awk '{print $3" - "$5}' | sort
140.82.112.0 - 140.82.127.255
148.62.46.150 - 148.62.46.151
148.62.46.192 - 148.62.46.199
174.143.3.100 - 174.143.3.103
185.199.108.0 - 185.199.111.255
192.30.252.0 - 192.30.255.255
74.205.116.224 - 74.205.116.239
Domain Dosier を使用してみてください。企業の公開Webサーバーに関する情報を提供します。 Network Whoisレコードを見て、定義されたCIDR範囲があるかどうかを確認できます。この範囲は、他のパブリック向けサーバーについてのアイデアを与えるかもしれません。次に、スキャンツールを実行して、使用中のIPやオープンサービスをホストしているIPを確認できます。ただし、スキャンは推奨されません。