Compact
true
担当領域:セキュリティ技術センター リスクハンティングチーム
主にペネトレーションテスト、脆弱性診断などを担当し、 NECグループのセキュア開発・運用を推進。 趣味は創作活動とフィギュア収集。

NECサイバーセキュリティ戦略本部セキュリティ技術センターの谷口です。
今回は、ペネトレーションテストツールの「Ninja C2」について紹介いたします。

Ninja C2とは

Ninja C2(https://github.com/ahmedkhlief/Ninja)は、ahmedkhlief氏が作成したツールです。本ツールはオープンソース(※1)のC2サーバであり、レッドチーム演習での使用を想定して作成されました。SIEMやアンチウイルスソフトに検出されることなく、リモートコンピュータとActive Directoryの情報列挙を行うことが可能と説明されています。
標的のマシンにペイロードを送り込んだことを前提として使い方をご紹介いたします。
(※1) ライセンスはGPLv3です。

Ninja C2 インストール

① GitのリポジトリからNinja C2のコピーを行います。

50

② ルート直下のinstall.shに対して実行権限を付与します。

50

③ install.shを実行します。

50

Ninja C2 起動

① インストール完了後、pythonでstart_campaign.pyを実行します。
すると次の情報を求められるので入力を行います。

50

環境の構成図は以下の通りです。

50

② pythonでNinja.pyを実行します。
すると以下のようなスタート画面が出力されます。
左側にCommandの一覧が載っているので状況に応じて使用します。

50

Ninja C2を用いた攻撃の流れ

① Ninjaにはあらかじめ標的をコントロールするための、次のようなペイロードが付属しています。

50

ルート直下にpayloadsフォルダがありますので、payloadsフォルダ一式を標的のWindowsマシンへ送りこんだと仮定します。

② Windowsで/payloads/dropper_cs.exeを実行後、Ninja C2の画面が以下のように切り替わり、標的が無事C2サーバに接続されたことが確認できます。

50

③ useコマンドを使用してWindowsマシンのシェルを奪います。dirコマンドを打ったところ、次の通りファイルの一覧が表示されました。

50

④ C2サーバに複数台端末が接続されている場合は、次のように制御した端末をuse 2で選択できます。

50

その他、スクリーンショットや端末情報取得、標的マシンへのファイルアップロードなど様々な操作がNinja C2側のCommandで容易に行えます。
さらに詳しい使い方やCommandについてはこちらのページをご覧ください。
(https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/)

所感

参考資料

執筆者プロフィール

執筆者
original
50

谷口 太郎(たにぐち たろう)
セキュリティ技術センター リスクハンティングチーム

主にペネトレーションテスト、脆弱性診断などを担当し、NECグループのセキュア開発・運用を推進。
趣味は創作活動とフィギュア収集。