web-dev-qa-db-ja.com

Metasploit Meterpreterの代替

最近はさまざまな種類のクライアントハッキング手法をテストしていますが、すべてのシナリオでMeterpreterのバリエーションをペイロードとして使用しています。アンチウイルスとファイアウォールを簡単にバイパスできるようになりましたが、Symantec SonarとIPSは常にMeterpreterペイロードを検出し、攻撃者のIPをブロックします。

IPSをバイパスできるMeterpreterより優れたペイロードはありますか?

私のニーズに合ったペイロードを書くネット上のチュートリアルはありますか?

26

AVとIPS=をバイパスすることは、meterpreterまたは他のRATを介して実行できます。ほとんどの場合、meterpreterは便利です。最初はオープンソースで、2番目はリフレクティブとして実装されていますDLLディスクに触れることなく、悪用されたプロセスに自分自身を挿入します。

AVソリューションは Veil Evasion プロジェクトを介して簡単にバイパスできますが、reverse_https meterpreterはIPSをバイパスできるため、接続は暗号化されています。 Stage Encoding は、多くのIPSソリューションをバイパスできる2番目のステージmetsrv.dllもエンコードします。また、HTTPSを介したステージレスメータープレターは、ホストおよびネットワークベースの検出をバイパスするのに非常に便利です。ソリューションも。

ただし、ユーザーがセッションと対話する必要がある同期ペイロードであるMeterpreterは、管理が難しくなることがあります。クライアント側の攻撃またはキャンペーンを長期間にわたって実行する必要がある場合。そのような場合、常に ThrowbackPupy 、または Cobalt Strike's Beaconペイロードを使用するオプションがあります。これらのペイロードの利点は、本質的に非同期であり、すべてがリフレクトDLLとして実装されていることです。つまり、ペイロード/ windows/dllinject /ペイロードタイプを介してMetasploitで使用できます。また、これらのペイロードはMetasploitソースツリーの通常のMeterpreterほど頻繁には使用されないため、多くのAVおよびIPSソリューションをそのまま使用してもバイパスできます。

最近、純粋なPowershellに実装されたペイロードは、AVおよびIDS/IPSをバイパスできます。 Powershell Empire は、純粋なPowershellに実装されたそのようなペイロードの1つです。

Meterpreterに欠けていたものの1つは、ハンドラーに連絡せずに最初のステージでアクションをスクリプト化することです。このようなことは現在Python meterpreter)のメインソースにあり、今後数日で、機能性は他のmeterpreterペイロードタイプにも移植されます。私の答えを見てください- アンチウイルス回避のためのテクニック このトピックに関する詳細な説明のためにAVをバイパスするためのテクニックのリスト。

30
void_in

PowerShellEmpire および Slingshot は、2016年に入るインプラントの2つの主要な考慮事項です。ただし、侵入検知、高度なウイルス対策エンジン、および脅威ハンティングプラクティスにより、これらのインプラントを簡単に捕まえることができます。あなたはテクニックを理解していません。

MeterpreterとCobalt Strike Beaconもその場所にあります。 slarpdzarp プロジェクトから)と呼ばれる興味深いバックドアは、ローカルネットワークのみのリモートシェルです ARPで動作 。 Cobalt Strikeは SMB名前付きパイプ を介して、低速で低速でほとんど見えない追加のネットワークシェルを提案しています。

Meterpreter、Beacon、Slingshot、およびEmpireはすべて、HTTPS秘密チャネルを使用する場合、最初にWinHTTPの代わりに Wininet を使用することをお勧めします。 Meterpreterは、ネットワークの隠れチャネルにも多くの重い設定を必要とします-しかし、朗報は、このWikiページ Paranoid Mode が適切に設定するために必要なほとんどの情報を含んでいることです-検出を避けるため。

ビーコン (今日これらのインプラントはすべて非常に大音量で行われます-これは2016年に変更される可能性があります)の概念は、狩猟活動に巻き込まれるように、克服すべき大きな問題です。 Empireは Listener setup およびconfigでこれを最適に実装します。 Empireには、DefaultDelay、DefaultLostLimit、KillDate、WorkingHoursの設定と、固有の反ビーコンのDefaultJitter設定があります(これらの設定のほとんどは信じられないほど効率的で固有ではありません)。 MetepreterにはSessionCommunicationTimeoutとSessionExpirationTimeoutのみがあり、HTTPS経由のみです。

Empireは、「モジュールはopsecセーフではありませんが、まだ実行されていますか?」というメッセージでオペレーターが重大な間違いを犯すのを防ぎます。ただし、エンパイアが最初に配信された方法に応じて、エージェントはさまざまな方法で検出されます。 Empireを配信する最良の方法は、ブラウザ(Win7/IE8/Java6 ms13_055_canchorなど)またはFlashエクスプロイト(たとえば、Operation Clandestine Wolfキャンペーンで見られるFlashエクスプロイト、Adobe_flash_nellymoser_bofとして転用されたもの、またはハッキングチームのUAF opaqueBackgroundプロパティ およびByteArrayオブジェクトの別のオブジェクトは、Adobe_flash_hacking_team_uafとして再利用されます)。上記(および私のコメント)の@void_inで説明されている方法では、powershell.exe(またはEmpireエージェント)はプロセスとして開始されることはなく、ブラウザと同じメモリ空間に(そして psinject 、あなたが望む他のプロセスに)。 Microsoft Office (またはAdobe Reader [〜#〜] pdf [〜#〜] )エクスプロイトまたはマクロによる配信は、2番目に優れた代替手段です。 USBフラッシュドライブ、SMBRelayX、StuxnetスタイルのWebDAV、共有フォルダーなど、実行可能ファイルを介した配信は、最も簡単にキャッチできるものの1つです。ターゲットがPowerShellの攻撃的な機能を知っている(たとえば、CrowdStrikeなどを実行している)場合は、ブラウザーが提供したもの(例: hta_powershell in BeEF)-またはEmpire、Cobalt StrikeのPowerShell Web Delivery、metasploit-frameworkのpexec_pshのDryRunなどのコマンドライントリッキー 非DLLステージャー などは、これらの最新の保護さ​​れたインフラストラクチャでは機能しません。あなたは捕まるでしょう。

多くの場合、ターゲットネットワークの特性に応じて、カスタムの隠しチャネルやC2を構築するのが最適です。 ARPまたはSMB名前付きパイプは(制限があっても)素晴らしいように見えますが、間違ったときに目立ちすぎますか? meterssh またはcheetz/c2はおそらく素晴らしいです重いSSHおよびHTTPトラフィック環境の候補はそれぞれですが、それらもキャッチされる可能性があります。低速および低速の手法は有効性が低いことが判明しています-そして、漏出パス(それが目的またはインプラント要件である場合、つまり盗む場合)データ)が防御のロギングレートと十分に一致しない場合は、すでに失っている可能性があります。おそらく、IPv6またはその他のネットワーク難読化が役立つでしょう(たとえば、SniffJoke)。 Tor(出口ノード分析を保護するため)または制御されたTorノードにさえ適切に構成されたTLSを送信しますが、FASHIONCLEFT、Ncovert、および covert_tcp アプローチも楽しんでいます。上?

どのモジュールを実行する予定ですか? MeterpreterとMimikatzのルーチンを実行し、ファイルをアップロードし、タイムスタンプを打つなど、これらは妥協の明確で現在の指標です。驚いたことに、イベントログをクリアすることは思ったほどではありませんが、私の意見では、それらをそのままにしておくことも最善です。ほとんどの環境では、Meterpreterルーチンは非常に簡単に捕捉されますが、次の段落で特定するいくつかの利点があります。 Empireにはそれらの大部分があります。situational_awareness/Host/winenumsituational_awareness/Host/paranoiaを実行した後、collection/netripperと非常にターゲットを絞ったcollection/ninjacopyを使用できます。 credentials/powerdumpで特権を取得しないことをお勧めします。これは、望みよりも騒々しい可能性があるためです-忍者コピーでさえも、技術的にディスクにアクセスします(ただし、動作は異なります)。 collection/inveigh(つまり、PowerShellに実装されたResponder.py)は優れたモジュールです。2016のネットワークで永続性を維持しても、永続的なOSフック(Autoruns、Services、Scheduled Tasksなど)を実際に実行する必要はありませんが、ネットワーク上のすべてのマシンとクレデンシャルについて。 collection/minidumpも注意して使用する必要があります。これらすべてを調べて、防御テクノロジー(AV、ネットワークベースのIPS、HIPSなど)とハンティングテクニック(Powershellロギング、Sysmonイベントなど)をすべて適用するのがおそらく最善です。あなたのインプラントで生産に行く前に。

帝国では実行できないMetepreterを介して提供できる楽しいテクニックがたくさんあります- CCDC's や類似のイベントで役立ちます。たとえば、Empireでマウスとキーボードを無効にする方法はわかりませんが、Metepreterでは単純なuictl disable keyboard|mouseです。私のお気に入りのMeterpreterモジュール、run lockout_keyloggerを複製することは可能ですが、Empireは Lock-Workstation とPowerSploitの Get-Keystrokes をモジュール化またはステージングする必要があります。 Metepreterには特定のシナリオでrun windows_autologinがあり、 PowerUp にはGet-RegAutoLogon関数が含まれています。帝国にはsituational_awareness/Host/getcomputerdetailsがあり、これは間違いなくmetasploit-framework postモジュールに組み込む必要があると思います。多くのMetepreterアクションは最新のWindows OSでは機能せず、使用を許可するレジストリエントリを変更すると、非常に頻繁に監視される可能性があります。たとえば、多くのSMBモジュール(特にシークレットモジュール)は、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\SystemLocalAccountTokenFilterPolicyが存在し、0に設定されている場合は実行されません。1に設定すると、アラームが鳴る場合があります。 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest内のUseLogonCredentialが存在するか、1に設定されている場合は、Mimikatzをカーネルドライバーとしてロードする必要があります(注: このブログ投稿 の最後の「Passwords」というタイトルのヘッダーセクションを確認してください)ただし、Win10またはServer 2012をターゲットにしている場合は、HKLM\SYSTEM\CurrentControlSet\Control\Lsaで恐ろしいRunAsPPL = 1に遭遇する可能性があります。これにより、これらのプラットフォーム(および8.1よりも古いプラットフォーム)で多くの資格情報がダンプされなくなりますが、他の人はVista/7にバックポートします。ほとんどのMetasploitポストモジュールはメモリ内だけに留まるわけではなく、コマンドへのシェルアウトはおそらくログに記録されて処理されます。メモリ内のみに留まるMetepreterモジュールを見つけてください。標準のWindowsコマンドを実行する必要がある、または希望する場合、たとえば、execute -H -m -d calc.exe -f c:\\Windows\\System32\\whoami.exe -a "/all"を使用して、-mフラグで現在のプロセスから実行します。メモリと-dは、プロセスリストに偽の名前で新しいプロセスとして表示されます(ただし、-Hで非表示になります。詳細は こちらをご覧ください )。 sysinfogetuiduse -lpssteal_tokengetpidtransportrun win_privswifi_listrun enum_logged_on_users -c(N.B。、-cディスクに触れないで実行!)、window_enum -u、およびclipboard_get_dataは、私のお気に入りのメーターコマンドの一部です。私は、run enum_sharesrun usb_historyなど、ディスクに触れるものを気に入っていますが、それらは控えめに使用してください(主にこれらは興味深いピボットチャンスにつながるためです)。おそらく、run scraperrun winenumrun enum_cred_storerun enum_unattendは使用したくないでしょう。特にrun checkvmrun getcountermeasurerun killavrun bypassuac_injectiongetsystemrun hostsedit、またはrun persistenceは使用しない方がいいと思います。 Meterpreterからドメインに触れると、多くのフラグが立てられます(NB、ほとんどすべてのクラシック Meterpreterスクリプト 何年にもわたって信頼してきましたが、metasploit-frameworkポストモジュールが支持されるようになります!しないでくださいこれらのほとんどを使用し、それらを置き換える新しいモジュールを優先します)-確かにEmpireのシチュエーション_認識/ネットワークモジュールにジャンプすることはより優れています(そして、それらはより優れた技術を実装します)。選択肢があるのは良いことであり、EmpireとMeterpreterのインプラントはどちらもしっかりと混ざり合い、見た目通りに一致すると思います。状況によっては、両方を実行することが理にかなっています!

持続性といえば、帝国は非常に興味深い視点を提供します。これらの手法はMetepreterにはありません。 persistence/misc/disable_machine_acct_changeは素晴らしいですが、persistence/powerbreachモジュールは真の挑戦者です。多くの楽しいMetasploitスタイル コンペティションモジュール と時間をかけて構築されたテクニックがあり、エンパイアのトロールスプロイト階層で複製されたものもありました。競争においてマシンが管理者からのアクセスを許可しないようにすることは非常に残酷ですが、サイバー演習中または赤の場合、青のチームを混乱させます(つまり、ローカルとネットワークの両方のログインを許可しますが、他の方法が機能しない理由のトラブルシューティングを忙しくします)。チームの関与は彼らの忍耐力を本当に圧迫し、彼らに多くの教訓を与えます。 gpupdateとseceditを永久に削除して、不変のDisableGPOレジストリエントリを1に設定するなど、さまざまな手法を身につけています。ターゲットネットワークがサポートしている場合、赤いチームは、あまり知られていないネットワークを引き続き管理できます- [〜#〜] dsc [〜#〜] 機能の代わりにGPOとにかく。ミミカッツカーネルテクニック(NB、参照 このビデオは44:23から始まる) プレゾの終わりまで、特に スライド54と56 )も非常に楽しく、防御者が単一の強力で攻撃的なツールをターゲットにできないように再利用する必要があります。 Microsoft IISおよびAzure( Get-WebconfigおよびGet-ApplicationHost が頭に浮かぶ)、Empireのrecon/find_fruitモジュールにあるような中間層コンポーネント、およびless- Mesos 、Google Compute Engine、OpenStack、OpenShift、Cloud Foundry、LXC、Xen、Docker、CoreOS、EC2/AWSなどの理解されているものは、将来の長期的なターゲットとして大きな役割を果たします。

要約すると、MeterpreterはAV/HIPS(質問者によって言及されたものなど)によって検出される可能性があるため、メタスプロイトフレームワーク(ステージレスやエンコーダーなど)やVeil-Evasionでさえ見つかる缶詰の手法は避けることをお勧めしますフレームワーク。上記の@void_inで言及されている唯一の既知の優れた手法を使用してください。これには、メモリ破損に依存するエクスプロイトが含まれます。これらのタイプのエクスプロイト(ブラウザ、Flash、MS Office、Adobe Reader、潜在的なリモートサービスなど)の場合、@ void_inの手法(メタスプロイトフレームワークエクスプロイトとVeil-EvasionフレームワークのステージングされたMeterpreterリスナーなしのペイロードを使用することを含む-おそらく推奨) Paranoidモードのすべての設定が設定されたreverse_httpsペイロードになる-また、Empireリスナーと Empire launcher.dllステージャー )が必要であり、ReflectiveDLLInjectionに依存しているのは、その理由だけでなく、 UnmanagedPowerShellの手法を利用して.NETランスペースインスタンスを使用してPowerShellであるパイプラインオブジェクトのストリームを構築しますが、実行するために個別のpowershell.exeインスタンスを必要としません(したがって、標準のPowerShell動作の検出-.NETはインストールしますが、PowerShellをインストールする必要すらありません)。これは、metasploit-frameworkジョブ(エクスプロイトモジュール)、ドロップされたPowerShellEmpire launcher.dllステージャー、Veil-EvasionペイロードとEmpireステージャーを組み合わせたもので、reverse_httpsシェルにMeterpreter Paranoidモード構成を使用し、Empireリスナーです。

この手法をドロッパー(つまり、スタンドアロンの実行可能ファイル)で使用することもできますが、AV/HIPSは最初にスキャンして、異常を探します-その一部は、ReflectiveDLLInjectionまたは.NETランスペーステクニックかもしれません。代わりに、ドロッパーの場合、私の現在のお気に入りは TheShellterProject Stealth Modeです-特に、既知の正常なPEファイルに1つ以上の(EmpireとMetepreterのいずれか)ペイロードを感染させることがまさに私が探しているものだからために。 MS Officeのマクロを使用するときは、この種のドロッパーを使用することをお勧めします(AV/HIPSでスキャンされるため)。また、AntiVirus Hacker's Handbookを読んで、特定のAV/HIPSターゲットの多くの詳細と、多くの長期的なテクニックを確認することをお勧めします。作者は、最新のバージョンのVisual Studioを使用してビルドされたカスタムC/C++のアンパックされ、難読化されていないペイロード(PE-またはより良いDLL-またはおかしなインストーラー)を好むようですMicrosoftと相性の良いプログラミングスタイル-古典的な隠された視界角度。Meterpreterover Empireに慣れている場合は、PowerShellEmpire、Slingshot(SilentBreakSecの同じ人もThrowbackを行った)、Cobalt Strikeを試すことをお勧めしますビーコン。

26
atdre

既存の回答がすでにとても良いので、私はこのスレッドでチャイムするのが怖いです!しかし、とにかくそれを試してみて、少し異なる角度からやっていきます。それはMeterpreter自体を適応させて変更し、問題を回避します。まず、質問を少し引き離してみましょう。

これでアンチウイルスとファイアウォールを簡単にバイパスできますが、Symantec SonarとIPSは常にMeterpreterペイロードを検出し、攻撃者のIPをブロックします。

とりわけ、SEPのSONARを利用するターゲットでHTTPSを介してMeterpreterセッションを使用しています。これらの種類の保護は、あなたと同じように「猫とマウス」のゲームの一部です。 SONARが検出できないパスを発見するには、少量の調査が必要です。場合によっては、SONARのようなものをバイパスすることは、reverse_httpsを使用し、Metasploitリスナーにvalid SSL証明書があることを確認するだけの簡単なことです。私は通常、有効なSSL証明書を使用するように構成されたNginxがリッスンしているポート443が開いているクラウドベースの攻撃サーバーを持っています。私はNginxからのリクエストをMSF必要に応じてプロキシします。そこから、私のSEP関連の問題のほとんどは消えたようです。どうぞお試しください!それがどのように機能するか聞きたいと思います。また、何が引っ掛かっているのかを正確に調べるのに少し時間をかけることを恐れないでください。

IPSをバイパスできるMeterpreterよりも優れたペイロードはありますか?

ここで実際に「ペイロード」が何を意味するのか、おそらく明確にする必要があります。 MSFで生成されたステージングMeterpreter実行可能ファイルを実行している場合、実行可能ファイルにはPEスタブとステージャーしか含まれていません。これはwillたくさんのAVなどに巻き込まれます。すでに述べたように、これらをエンコードすると、基本を乗り越えることができます。ただし、ここでの問題の少しの部分は、バイナリが実行されたときに最初に起こるのは、外部エンティティへの接続が確立され、DLL(metsrvと呼ばれる)であることです。がネットワーク経由で送信されます。ここでreverse_tcpbind_tcp、またはreverse_httpを使用すると、ファイルはクリアテキストで送信されるため、ネットワーク上で指紋を付けるのが非常に簡単になります。これにより、 SEPセッションでピックアップします。-stagelessペイロードを使用してこれを回避する方法があります。これにより、生成されたバイナリにmetsrvとステージレスを使用するということは、metsrvをダウンロードする最初のステップを実行する必要がないことを意味します。もう1つ覚えておくべきことは、MSFで使用されるデフォルトの.exeテンプレートです。はよく知られているので、msfvenom-xパラメータを使用して独自に指定できます。

Powershellの人気により、-f pshを指定することにより、msfvenomを使用してPowershellペイロードを作成することもできます。これらのペイロードは、通常の方法でMeterpreterをメモリに注入できます。 AV/IPSはまだそのようなペイロードを拾い上げるというすばらしい仕事をしていないので、人々にバッチファイルを実行させる能力があれば、それらは良いオプションになる傾向があります。 AV/IPSを回避しようとする場合、psexecなどのPSHアプローチを使用すると非常にうまくいきます。

Meterpreterが使用する通信メカニズムも静かでよく知られているため、防御ツールを使用して取得できるもう1つの方法です。あります可能性があります何かが来るMSFこれはすぐにこれに役立つかもしれません(このスペースを見てください)。

ところで、移行は、移行への「アプローチ」が見つけやすいという点でも問題です。ただし、一部のAV製品では一定期間後にこれが発生する可能性があるため、気が付いた場合は移行が早すぎることが原因である可能性があります。

私のニーズに合ったペイロードを書くネット上のチュートリアルはありますか?

私が知っていることではありませんが、ハッカーの性質は、ハッカーがそこに侵入して自分自身を見つけ出せるようにするものです。 Meterpreter自体のソースを変更しても怖がらないでください。すべてオープンソースで、簡単に構築できます。

注:すべての防御システムをこのようにバイパスすることは常に可能だと言っているのではなく、単にいくつかを回避するのに役立つ可能性があるいくつかのアイデアを提供しています。

すばらしい質問、および両方ともすばらしい他の回答の+1。素晴らしい議論。

11
OJ.