2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

転ばぬ先の自鯖情報チェック!

クラックな方々が初めに行うのは色々な書籍を見ても相手の情報をつかむと言うこと。
これにつきるようだ。そうなると、自鯖掲げて自分の鯖情報がどのくらいゲットできるか?これ、気になるし知りたくなる。ならば、どのくらいの情報がネット上からゲットできるか自分で試してみたらいかがだろうか。
ここでは、その方法を伝授する。


1.whois情報のゲット

whois情報は、jpドメインならJPNIC、comドメイン等ならドメイン代行会社のサイトから見やすい情報がゲットできる。
個人情報がまるまるここに書き込まれているので当然悪人に利用されるのは必定。この情報は、住基ネットより細かい情報がゲットできるので注意が必要だ。しかし、ドメインの管理情報というのは、公開するのが義務なのでそのままでは隠蔽は不可能なのである。でも、以下は俺のwhois情報だがドメイン会社に管理を委託しているため、自分の情報を隠蔽できる。
自分のドメイン代行会社に管理委託出来るならばそのようにして自分の情報は隠蔽しよう。

Domain name: kozupon.com

Administrative Contact:
Hanbai Kaihatu co ltd.
akihiko shimizu (sales@domainya.net)
+81.724802580
Fax: +81.724821505
6-15-2-A1416 onosato
sennan shi, OSAKA 590-0526
JP

Billing Contact:
Hanbai Kaihatu co ltd.
akihiko shimizu (sales@domainya.net)
+81.724802580
Fax: +81.724821505
6-15-2-A1416 onosato
sennan shi, OSAKA 590-0526
JP

Technical Contact:
Hanbai Kaihatu co ltd.
akihiko shimizu (sales@domainya.net)
+81.724802580
Fax: +81.724821505
6-15-2-A1416 onosato
sennan shi, OSAKA 590-0526
JP

Registrant Contact:
Hanbai Kaihatu co ltd.
akihiko shimizu (sales@domainya.net)
+81.724802580
Fax: +81.724821505
6-15-2-A1416 onosato
sennan shi, OSAKA 590-0526
JP

Status: Active

Name Servers:
SUB2.KOZUPON.COM
TEGTAN1.INTERLINK.OR.JP


2.DNS情報からターゲットホストを見つける

例えば、以下のようなサーバのDNS情報からAレコードのホストの中でホスト名が”test“とか”web-test“や”mail-test“のような実験的ホスト名が有ればそのホストは防御が甘いホストと悪人は予想する、それで攻撃対象とする。いや、俺が悪人ならそうすると思う。むろん、これは正引き情報だが逆引き情報も同じ要領でゲットできる。したがって、以下のように簡単にこれだけのDNS情報がゲットできてしまうDNSの設定は良いとは言えない。

[root@main2 root]# nslookup
Default Server: hoge2.kozupon.com
Address: xxx.xxx.xxx.xxx

> set type=NS
> hogehoge.jp
Server: hoge2.kozupon.com
Address: xxx.xxx.xxx.xxx

Non-authoritative answer:
hogehoge.jp nameserver = ns1.hogehoge.jp
hogehoge.jp nameserver = ns2.hogehoge.jp
> exit
[root@main2 root]# nslookup – ns1.hogehoge.jp
Default Server: hoge.hogehoge.info
Address: xxx.xxx.xxx.xxx

> set type=any
> ls -d hogehoge.jp.
[hoge.hogehoge.info]
$ORIGIN hogehoge.jp.
@ 1D IN SOA ns1 root.hogehoge.jp (
8 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum

1D IN NS ns1
1D IN NS ns2
1D IN MX 10 mail
1D IN A xxx.xxx.xxx.xxx
ftp 1D IN CNAME www
mail 1D IN CNAME ns1
ns1 1D IN A xxx.xxx.xxx.xxx
ns2 1D IN CNAME ns1
www 1D IN A xxx.xxx.xxx.xxx
@ 1D IN SOA ns1 root.hogehoge.jp (
8 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum


これを防ぐには、named.confallow-transferステートメントを宣言すると良い。書き方は、 ここ を参照すると良いだろう。
ゾーン転送が制限されて以下のようにUnspecified errorで何も表示されない。

bash-2.05b$ nslookup – sub2.kozupon.com
Default Server: sub2.kozupon.com
Address: 203.141.144.180

> set type=any
> ls -d kozupon.com
[sub2.kozupon.com]
*** Can’t list domain kozupon.com: Unspecified error


3.ポートスキャンによる空きポートと使用OS情報のゲット

ポートスキャンは、空きポートの状況もそうだがOSの情報がnmapでゲットできる。通常は ★ 印の所にOS情報が出力される。
特に、nic2枚差しのルータを構成しているシステムではOSの情報がゲットできる。以下の例は、OSの情報が出力されていない。これは、BBルータを使っているとこのような結果になる。したがって、この情報隠蔽にはBBルータは有効である。

[root@main2 root]# nmap -sT -O hoge.hogehoge.com

Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on hoge.hogehoge.com (xxx.xxx.xxx.xxx):
(The 1513 ports scanned but not shown below are in state: closed)
Port State Service
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop-3
443/tcp open https

TCP Sequence Prediction: Class=truly random
Difficulty=9999999 (Good luck!)
No OS matches for host (If you know what OS is running on it, see http://www.insecure.org/root/nmap-submit.cgi).
TCP/IP fingerprint:
★TSeq(Class=TR)
T1(Resp=Y%DF=N%W=E000%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=N)
T3(Resp=Y%DF=N%W=E000%ACK=S++%Flags=AS%Ops=MNWNNT)
T4(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=F%ULEN=134%DAT=E)


Nmap run completed — 1 IP address (1 host up) scanned in 57 seconds


4.バナーから情報をゲットする

apacheでのバナー情報のゲットである。通常apacheのバージョンやOSの情報がゲットできる。
例えば、こんな感じである。

[root@mta root]# telnet localhost 80
Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’.

GET / HTTP/1.0     ← 手入力(HEAD / HTTP/1.0でも良い)

HTTP/1.1 200 OK Date: Mon, 19 May 2003 06:18:48 GMT
Server: Apache/2.0.45 (Unix) PHP/4.3.0RC3
Last-Modified: Fri, 28 Sep 2001 16:55:49 GMT
ETag: “602b4-65e-8f224f40”
Accept-Ranges: bytes
Content-Length: 1630
Connection: close
Content-Type: text/html; charset=ISO-8859-1

この場合、httpd.confのセクションに

ServerTokens ProductOnly

を指定してる。これが効いてる。あと、追加としてやっておいた方が良いと思うセクションは

ServerSigneture Off

こうしておけばバナーに関しては完璧。これは、もしapacheのドキュメントがダウンロードディレクトリ表示になったときに下方にapacheのバージョンとかのinfoが出てしまう。このバナー抑止する。

root@main2 root]# telnet www.hogehoge.com 80
Trying xxx.xxx.xxx.xxx…
Connected to www.hogehoge.com.
Escape character is ‘^]’.

HEAD / HTTP/1.0    ← 手入力

HTTP/1.1 200 OK
Date: Wed, 09 Feb 2005 13:56:02 GMT
Server: Apache
X-Powered-By: PHP/4.3.10
Set-Cookie: Cookie=2005%2F02%2F09; expires=Wed, 09-Feb-2005 13:58:10 GMT
Connection: close
Content-Type: text/html; charset=Shift_JIS

Connection closed by foreign host.

バナー抑止の詳細は、 ここ を参照すると良い。


5.smtpからのホストユーザの割り出し

これは、メールアドレスがドメインユーザで有ることが多いので悪人はこういう事をしてユーザIDを特定する。これは、合格と言うより防御不可能。何れにしても使わない余計なメールアドレスは/etc/aliasesから外した方が無難。もちろん余計なユーザアカウントも作らない方が良い。

[mity@yh mity]$ telnet hoge.hogehoge.com 25
Trying xxx.xxx.xxx.xxx…
Connected to ns.hogehoge.com.
Escape character is ‘^]’.
220 hoge.hogehoge.com ESMTP Postfix
EXPN root
502 Error: command not implemented
VRFY root
252 root
VRFY postmaster
252 postmaster
VRFY webmaster
550 <webmaster>: Recipient address rejected: User unknown in local recipien
t table
VRFY hoge
252 hoge
VRFY clack
550 <clack>: Recipient address rejected: User unknown in local recipient ta
ble
VRFY ftp
252 ftp
VRFY admin
550 <admin>: Recipient address rejected: User unknown in local recipient ta
ble
quit
221 Bye
Connection closed by foreign host.


6.その他

apacheのcgi-binディレクトリには余計なスクリプトファイルは入れておかない方が良い。cgi-binディレクトリを使わなければ、Permisson Lockして実行権は与えない方が無難。test-cgiというスクリプトがapacheのソースをコンパイルすると自動的に生成されるようだが、必要なければこれは消しておいた方が良い。このスクリプトはサーバ内のクエリー情報を出力するから使い方によっては、自ホスト内のディレクトリインデックスが全て解ってしまう。

以上

コメント