敵を知り己を知れば何とか~なんちゃって攻撃者体験~

こんにちは、マクニカネットワークス のTOMです。
今はエンジニアとして、特権ID管理製品を担当しています。

最近、サイバー攻撃に関するニュースを見てふと思ったことがあります。

「これだけ世の中にはセキュリティ製品が溢れているのに、何故サイバー攻撃の被害にあってしまうのか」
「どのように攻撃者は、セキュリティ製品を回避しているのか」

ということで、攻撃者というものを一度体験してみよう思い、今回「なんちゃって攻撃者体験」を個人的に実施してみました。

※今回の検証は自身が管理する検証環境内にて行ったものです。
 公開されているサーバや、他者のPCに対して攻撃を行うことは犯罪行為ですのでくれぐれもお気をつけください。

~利用ツールについて~
今回利用したのは、Power Shell Empire というDockerイメージにて提供されているツールです。
社内のセキュリティ勉強会で、あるエンジニアが本ツールを紹介していたのが本ツールとの出会いです。
簡単に導入ができ、様々な攻撃を試すことが出来るため、ペネトレーションテスト等の目的での利用が想定されているようです。

ツールの内容を簡単に説明します。
1.C&CサーバとなるPower Shell Empire 導入サーバ(以下、Empireサーバ)にて、攻撃用コードの生成を行います。
2.生成した攻撃用コードを標的となるサーバにて実行させます。
3.Empireサーバによる乗っ取りが成功し、様々な情報を取得したり、操作を行ったりすることが出来るようになります。
※C&Cサーバ:Command and Control server の略。侵害したコンピュータに対して制御したり命令を出したりする役割を担うサーバコンピュータのこと。

今回、本ツールを利用してやってみたかった攻撃は、 Pass The Hash 攻撃と呼ばれるものです。
これは、パスワードを平文で知っていなくても、ハッシュ化されて保存されているパスワード情報を入手できれば、サーバにログインしたり、リソースにアクセスが出来てしまったり、という攻撃手法です。
特権ID管理に関する製品を取り扱っているため、この攻撃について調べる機会は多くあったのですが、実際にどのように攻撃を行うのか、ということは体験したことがなかったので、今回是非ともチャレンジしてみようと思いました。

~検証の流れ~
※一部の情報はマスキングしています。

1.Power Shell Empire にてコードを生成
生成した攻撃コードを、攻撃対象のWindowsサーバにて実行させます。
今回は私が自身の環境で検証していますが、実際の攻撃ではこのコマンドをファイルに埋め込んだり、別のファイルに擬態させたりするなどして実行させることが考えられます。%E6%88%90%E9%95%B7%E6%A9%9F%E4%BC%9A1.png

2.攻撃対象のWindowsサーバからの通信の確認
実際にコードをWindowsサーバで実行させたところ、 Empireサーバ側に通信が発生しました。まずはこれで侵入成功ですね。

※ちなみにWindowsサーバ2016だとWindows Defenderが動作して上記のコード実行がブロックされました。%E6%95%B5%E3%82%92%E7%9F%A5%E3%82%8A%E5%B7%B1%E3%82%92%E7%9F%A5%E3%82%8C%E3%81%B0%E4%BD%95%E3%81%A8%E3%81%8B2.png

3.コマンドを実行してみる
本当にこれで侵入できているのか...試しにlsコマンドを実行してみます。%E6%95%B5%E3%82%92%E7%9F%A5%E3%82%8A%E5%B7%B1%E3%82%92%E7%9F%A5%E3%82%8C%E3%81%B0%E4%BD%95%E3%81%A8%E3%81%8B3.png

お、ちゃんと表示されていますね~。

これでこのサーバはもう手の内ですね。

4.資格情報を奪う
パスワードハッシュを奪うためのコマンドが用意されているので、そちらを実行します。%E6%95%B5%E3%82%92%E7%9F%A5%E3%82%8A%E5%B7%B1%E3%82%92%E7%9F%A5%E3%82%8C%E3%81%B0%E4%BD%95%E3%81%A8%E3%81%8B4.png

ドメイン管理者のパスワードハッシュが手に入ったことが分かりますね。
これでこのドメインはもはや制圧したも同然...

5.資格情報を使ってログインしてみる
Unixに、xfreerdp というRDP接続用のモジュールがあり、pth というオプションで先ほど取得したパスワードハッシュを指定します。
これを使うと、パスワードではなくパスワードハッシュでログインができるとのこと。
本当に??%E6%95%B5%E3%82%92%E7%9F%A5%E3%82%8A%E5%B7%B1%E3%82%92%E7%9F%A5%E3%82%8C%E3%81%B0%E4%BD%95%E3%81%A8%E3%81%8B5.png

実行します。%E6%95%B5%E3%82%92%E7%9F%A5%E3%82%8A%E5%B7%B1%E3%82%92%E7%9F%A5%E3%82%8C%E3%81%B0%E4%BD%95%E3%81%A8%E3%81%8B6.png

無事に (!?) ログインできました!!

ただし、対象がWindowsサーバ2016だと、デフォルト設定ではこのログイン方法は弾かれました。
古いOSや、セキュリティ設定が緩いOSの場合は本攻撃を行うことが出来るのではと推測しています。

~検証を終えて~
今回、簡単ではありますが実際に攻撃を仕掛けてみて、攻撃者がどのようなことを考えているのかが少し分かった気がします。

例えば、最初Windowsサーバ2016でEmpireの攻撃コードを実行しようとしたところ、Windows Defenderにブロックされてしまいました。
それを受けて、
・どうにかWindows Defenderの検知ロジックを回避する術はないか
・そもそもWindows Defenderを外部から無効化できないか
・むしろ管理者を騙してWindows Defenderを自ら無効化してもらうことは出来ないか
などなど、色々と悪いことを(あくまでも検証の一環として)考えました。

セキュリティ製品も進化してるので、新しい攻撃にも対応していっていますが、攻撃者は更に抜け道を探そうと必死になる...だから新たな攻撃手法が生まれたり、攻撃者が脆弱性を見つけることでサイバー攻撃が行われている。
今までは、自身の製品でどんなことができるのかという機能的な側面に目を向けることが多かったのですが、今回の検証を通じて、「攻撃者はあの手この手で攻撃を仕掛けてくる」というのを、少しリアルに感じることができ、だからこそセキュリティ製品が果たす役割が非常に重要であると、改めて感じました。

まだまだ勉強中の身ですが、更に深くセキュリティを知ることで、日々の業務へも活かしていきたいと思います。
少し視点を変えて物事を見ること、それは新しい何かを発見するヒントになる...かも。

トップに戻る

関連記事

前へ

テレワークを行ってみた

次へ

個人情報取り扱い企業のリスク診断

Page Top