ペネトレーションテスト&バグバウンティハッキング
VulnHubのKioptrix: Level 1 (#1)サーバーをバグハンティングの手順を利用してハッキングを行います。
バグハンティングの操作手順
バグハンティングの操作手順は以下の通りです。
1.準備段階(Preparation)
2.情報収集(Reconnaissance)
3.脆弱性分析(Scanning)
4.攻撃(Exploit)
5.維持(Maintaining Access)
6.レポート(Reporting)
VulnHubのKioptrix: Level 1 (#1)サーバーとは
VulnHubのKioptrix: Level 1 (#1)サーバーは、初心者から中級者向けのセキュリティ学習用仮想マシンとなります。
VulnHubのサイトでは、「この Kioptrix VM イメージは簡単なチャレンジです。ゲームの目的は、あらゆる手段を使ってルート アクセスを取得することです (VM サーバーまたはプレーヤーを実際にハッキングする以外)。これらのゲームの目的は、脆弱性の評価とエクスプロイトにおける基本的なツールとテクニックを学ぶことです。チャレンジを成功させる方法は 1 つだけではありません。」とあります。
ハッキングの目標
Kioptrix: Level 1 (#1)サーバーにアクセスして、ディレクトリの内容を確認します。
VulnHubのKioptrix: Level 1 (#1)サーバーのハッキング
準備段階(Preparation)
ツールおよび環境を準備します。
1.ハッキングツール
・ハッキングツールには、Kali Linuxを利用します。
仮想環境(VirtualBox 7.1)にKali Linux 2024.3をインストール手順
2.ハッキングするサーバー
・Kioptrix: Level 1 (#1)をハッキングします。
ハッカーはオンラインプラットホームであるVulnHubを利用して、様々な脆弱性を持ったやられサーバーを起動して攻撃を行い、脆弱性を学習します
【注意】
以下、サーバーのIPアドレスは貴方のパソコン環境で変動しますので、読み替えて作業をお願いします。
情報収集(Reconnaissance)
1.Kali LinuxとVulnHubのKioptrix: Level 1 (#1)サーバーのIPアドレスを調べます。
2.VirtualBoxより、Kali Linuxを起動します。
3.Kali Linuxが起動したら、ログインします。
4.Kali Linuxが起動しました。
5.ターミナルを立ち上げて、"ifconfig"コマンドを実行します。
6."ifconfig"コマンドの実行結果より、Kali LinuxのIPアドレスが"192.168.1.59"であることが分かりました。
7.次に、Kioptrix: Level 1 (#1)サーバーのIPアドレスを調べる準備をします。
"sudo arp-scan -l"
8.現在、ネットワーク上につながってるマシンのIPアドレスが表示されます。
※IPアドレスが7個表示されています。
9.VirtualBoxより、Kioptrix: Level 1 (#1)を起動します。
10.Kioptrix: Level 1 (#1)を起動しました。
11.先ほどの"arp-scan"のコマンドを再度実行して結果を再確認すると、IPアドレスが8個表示されており、"192.168.1.23"が追加されていることがわかります。
Kioptrix: Level 1 (#1)サーバーのIPアドレスは"192.168.1.23"です。
※この"192.168.1.23"のIPアドレスのマシンをハッキングすることになります。
脆弱性分析(Scanning)
1.Nmapコマンドを利用して、ネットワーク上で利用可能なホスト、ホストが提供しているサービス(アプリケーション名とバージョン)、ホストが実行しているオペレーティングシステム(およびOSバージョン)などを確認します。
2."nmap -A -p- -T4 192.168.1.23"を実行します。
オプション
-A:詳細なスキャンを実行します。OS検出(ターゲットのオペレーティングシステムを特定)。サービスバージョンの詳細な検出。
-p-:1番から65535番までのポートをスキャンできる。
-T4:処理を高速に実行する。
3.実行結果より、どんなサービスが起動しているか確認します。
※要約すると、以下のサービスが起動されていることを確認しました。
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 2.9p2 (protocol 1.99)
80/tcp open http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenS111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd (workgroup: _MYGROUP)
443/tcp open ssl/https Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.32768/tcp open status 1 (RPC #100024)
上記6個のサービスを一つずつ、脆弱性を調べることになります。
今回は、ポート139の「Samba」のサービスについて調査します。
※Sambaとは
Sambaは、WindowsとLinux/Unix間でファイル共有やプリンタ共有を実現するオープンソースのソフトウェアです。主にSMB/CIFSプロトコルを使用し、Windows環境でのファイルサーバやドメインコントローラの機能を提供します。例えば、Linux上でSambaを設定することで、Windowsユーザーがネットワークを通じてファイルにアクセスしたり、プリンタを利用したりできます。
4.実際にKioptrix: Level 1 (#1)サーバーで、Sambaがリモートホストで実行されているか確認します。
"enum4linux 192.168.1.23"
5.実行結果を確認します。
実行結果中ほどに「Share Enumeration on 192.168.1.23」を確認します。
Sambaがリモートホストで実行されていることが確認できました。
6.次に、Sambaの脆弱性を判断するために「Sambaのバージョン」を調べます。
「Sambaのバージョン」は、Meatsploitフレームワークを利用します。
f.Kali Linux上部の「applications」のボタンを押下して、検索窓に"metasploit-framework"と入力して、metasploit-frameworkを起動します。
7.新しいターミナルが立ち上がり、Kali Linuxのパスワードを入力すると、Meatsploitフレームワークが立ち上がります。(起動に少し時間がかかります。)
8.まず、Sambaのスキャナーモジュールを検索します。
"search scanner/smb"
9.検索結果が表示されました。
16番目に「auxiliary/scanner/smb/smb_version(SMBバージョン検出)」がありますので、これを利用します。
10.この16番目のモジュールを使用します。
"use 16"
16番目の「auxiliary/scanner/smb/smb_version」が利用できるようになりました。
11.「auxiliary/scanner/smb/smb_version」のオプションを確認します。
"show options"
RHOSTSのオプションにハッキングするサイトのIPアドレスが必要になりますので設定します。
"set RHOST 192.168.1.23"
12.オプションの設定が完了したら、"run"コマンドを実行して、Sambaのバージョンを確認します。
実行結果を確認すると、Sambaのバージョンが"2.2.1a"だということがわかりました。
これらのSambaのバージョンに対する脆弱性を攻撃します。
攻撃(Exploit)
1.SearchSploitコマンドを利用して、マシン上で実行されているターゲットのSambaサービスに関連する脆弱性をExploit-DBを利用して検索します。そして、エクスプロイト可能なモジュールを取得します。
"searchsploit samba 2.2.1a"
エクスプロイト可能なモジュールが4個見つかりました。
・trans2open Overflow (Metasploit):オーバーフロー
・Remote Code Execution :リモートコード実行
・Remote Heap Overflow:リモートヒープオーバーフロー
・Denial of Service (PoC):サービス拒否 (PoC)
上記のエクスプロイトモジュールより、「リモートコード実行」を利用します。
モジュールは「multiple/remote/10.c」になります。
2.「multiple/remote/10.c」をダウンロードします。
"searchsploit -m multiple/remote/10.c"
3.「multiple/remote/10.c」がダウンロードできました。
4.ダウンロードファイルを確認します。
5.「10.c」は、c言語で書かれているためコンパイルします。
"gcc -o exploit_10 10.c"
6.exploit実行ファイルを確認します。
7.exploit_10のオプションを確認するためにヘルプファイルを表示します。
"./exploit_10"
8.ブルートゥースの攻撃を行います。
"./exploit_10 -b 0 192.168.1.23"
9.攻撃が実行されました。
現在の状態は、Linuxのコマンドの入力待ちになっています。
a.Kioptrix: Level 1 (#1)サーバーに現在ログインしているユーザーを調べます。
"whoami"
root(ルート)でログインしていることを確認しました。
b.Linuxシステムのバージョン情報の確認
"uname -a"
c.ディレクトリーの確認
"
pwd"
これで、Kioptrix: Level 1 (#1)サーバーのハッキングが完了しました。
ハッカーは、バグハンティングの手順を利用してKali Linuxを使い、Kioptrix: Level 1 (#1)サーバーをハッキングする。(Samba編)のまとめ
いかがでしたか。今回は「Samba」の脆弱性を突きましたが、他にも脆弱性があると言われています。
実際に手を動かしてわかるのですが、なんとなくハッキングの手順がわかったような気がします。
本当のハッキングは、何百倍、何千倍も難しいと思いますが、最初の第一歩を踏めたのではないでしょうか。
VulnHubには、数えきれないぐらいの脆弱性をもったサーバーがあります。これらの脆弱性が見つけられることができれば、バグハンターも夢ではないですね。