
WindowsとCobalt Strikeを学ぶために書かれたBeacon BOFのコレクション
Beacon BOFのコレクション。
Beaconオブジェクトファイルを介してDCOM(ShellWindows)を使用したラテラルムーブメントの簡易PoCです。資格情報を指定するか、現在のユーザーを使用できます。現在のユーザーを使用するには、ドメイン、ユーザー名、パスワードを空のままにします。CでのCOMオブジェクトの使用に関する短い記事はこちらにあります。
前のものと同様の概念ですが、興味深い学習体験です。コードはCIA Vault 8から採用されています。このメソッドはWin32_Processクラスを使用します。
これはラテラルムーブメントにWMIイベントを使用します。ほとんどの重労働はwumb0inによって行われました。
dotnet BOFを使用したオンデマンドC2の実装です。Beaconは、指定された単語(件名または本文内)を含むメールが届くまでスリープ状態になります。これにより、Beaconはあなたが望むときだけコールバックします。Beaconがコールバックするときは、Malleableプロファイルで設定されたスリープ時間でコールバックします。終了したらBOFを再度実行でき、Beaconは次のメールを送信するまでスリープします。おまけとして、指定された単語を含むメールは、ユーザーが通知を受け取る前に削除されます。
1 ) BOF .NETプロジェクトをダウンロードし(素晴らしい仕事をしてくれたCCobに感謝!)、CCobのガイドこちらに従ってdllをBeaconにロードします。
2 ) 次のように実行します: bofnet_execute On_Demand_C2_BOF.OnDemandC2Class subject COVlD-19*
3 ) 次に、Beaconからコールバックを得るために、次のようなメールを送信できます: [SUSPECTED SPAM] The new COVlD-19 update
メールは直接[削除済みアイテム]にリダイレクトされ、Beaconが再びコールバックします!
*これは一意性を確保するために小文字のLを使用したCOVLD-19です。
次のようにbodyオプションを指定することもできます: bofnet_execute On_Demand_C2_BOF.OnDemandC2Class body "it can also be a sentence!"
その場合、アプリケーションはメールの本文に"it can also be a sentence!"が含まれている場合のみトリガーします。ただし、この方法ではメールを受信するたびに「プログラムがメールアドレス情報にアクセスしようとしています」というプロンプトが表示されるため、この機能が無効になっていると確信している場合にのみ使用することをお勧めします(企業では無効になっていることがよくありますが、追加のOPSECは決して損にはなりません)。
Windows、CobaltStrike、ラテラルムーブメントについてもっと学ぶために、これらのテクニックをBOFに移植しました。PowerShellコマンドのコピペでは物足りないという好奇心からです。
DCOMラテラルムーブメントは理解するのに時間がかかり、他のプロジェクトやリポジトリで実装されているのを見つけられませんでした。しかし、WMIラテラルムーブメントの部分は主に他の人によって行われています。私がやったのは、軽微な修正とBOFへの移植です。
私はまだ熟練した開発者ではないので、注意して使用してください。これらのスクリプトをGITにプッシュする前に、ネットワークMDRサービスが提供されているエンタープライズ環境でテストされ、アラートはトリガーされませんでした。しかし、言うまでもなく、エンゲージメントで実行する前にスクリプトを修正してテストする必要があります。支援が必要な場合は、遠慮なく連絡してください。また、これらのBOF用のAggressorスクリプトに興味がある場合は、お知らせください!
はい、スター、リツイート、または大学卒業後にRed Teamに招待していただくことで助けになります。
rsmudge氏には、継続的なサポートと質問への迅速な対応に感謝します。domchell氏の記事は素晴らしい導入となり、優先順位の形成に役立ちました。