敵の戦術、テクニック、および常識(ATT @ CK)を学びます。 エンタープライズ戦術。 パート4

特権エスカレーション



すべての部分へのリンク:

パート1.初期アクセスの取得(初期アクセス)

パート2.実行

パート3.固定(永続性)

パート4.特権エスカレーション

パート5.防衛回避

パート6.資格情報アクセスの取得(資格情報アクセス)

パート7.発見

パート8.横方向の動き



特権のエスカレーションは、攻撃者または悪意のあるプログラムが攻撃されたシステムまたはネットワークでより高いレベルの許可を取得できるようにするアクションの結果です。 特権エスカレーション技術は、攻撃者が攻撃されたシステムへの非特権アクセスを取得した後、システムのさまざまな「弱点」を使用してローカル管理者、システムまたはルート権限を取得する方法を説明します。 特定のシステムへのアクセス権または特定の操作を実行する権限を持つユーザーアカウントを攻撃者が使用することも、特権の昇格と見なすことができます。



著者は、記事に記載されている情報を適用することで生じる可能性のある結果について責任を負わず、また、いくつかの製剤や用語で行われた可能性のある不正確さについて謝罪します。 公開されている情報は、 MITRE ATT&CKの内容を無料で改ざんしたものです。



ATT @ CKマトリックスに記載されている手法のいくつかが攻撃チェーンのいくつかの段階に同時に含まれていることをキャンセルすることが重要です。たとえば、DLL検索インターセプトを使用して、悪意のあるDLLの不正実行によるアクセスを保護し、プロセスでDLLを起動して特権を増加させることができます。より特権のあるユーザーのコンテキストで作業する。



アクセストークン操作



システム: Windows

権利:ユーザー、管理者

説明:攻撃者はアクセストークンを使用して、さまざまなユーザーまたはシステムのセキュリティコンテキストでアクションを実行し、悪意のあるアクティビティの検出を回避できます。 攻撃者はWindows API関数を使用して、既存のプロセスからアクセストークンをコピーできます(トークンを盗む)。これは、特権ユーザー(管理者など)のコンテキスト内にいる必要があるためです。 アクセストークンの盗難は、管理者レベルからシステムレベルに特権を昇格させるために一般的に使用されます。 攻撃者は、リモートシステムでのアカウントに必要な権限がある場合、アカウントのアクセストークンを使用してリモートシステムで認証することもできます。

アクセストークンを悪用するいくつかの方法を検討してください。



保護の推奨事項:上記の戦術を最大限に活用するには、攻撃者はシステム管理者権限を持っている必要があるため、一般ユーザーの特権を制限することを忘れないでください。 正当な資格情報があれば、どのユーザーでもアクセストークンをだますことができます。 ユーザーおよびグループがアクセストークンを作成する機能を制限します。

GPO:コンピューターの構成> [ポリシー]> Windowsの設定>セキュリティの設定>ローカルポリシー>ユーザー権利の割り当て:トークンオブジェクトを作成する

また、ローカルサービスまたはネットワークサービスのプロセストークンを置き換えることができるユーザーを決定します。

GPO:コンピューターの構成> [ポリシー]> Windowsの設定>セキュリティの設定>ローカルポリシー>ユーザー権利の割り当て:プロセスレベルトークンを置き換える



アプリケーション実行可能ファイルの変更「アクセシビリティ機能」



システム: Windows

権利:管理者

説明:ユーザーがシステムにログオンする前に、キーの組み合わせを使用して、アクセシビリティアプリケーション(画面拡大鏡、オンスクリーンキーボードなど)を起動できます。 攻撃者はこれらのプログラムのスタートアップファイルを置き換えたり、起動方法を変更したり、ログインせずにコマンドコンソールを開いたり、バックドアを取得したりできます。



WinXP以降のバージョンでは、sethc.exeとutilman.exeは、たとえばcmd.exeに置き換えることができ、目的のキーの組み合わせを押すと、システム権限でWindowsに入る前にcmd.exeが起動します。

Vista以降のバージョンでは、たとえばultiman.exeの場合、cmd.exeまたは別のプログラムをデバッガーとして構成するレジストリキーを変更する必要があります。 レジストリを編集し、ログイン画面で目的のキーの組み合わせを押すか、RDPを介してホストに接続すると、システム権限を持つcmd.exeが実行されます。

この攻撃手法の実装に使用できるWindowsプログラムもあります。



セキュリティの推奨事項: RDPセッションを作成してログイン画面を表示する前に、リモートユーザーの必須ネットワーク認証の開始を構成します( Windows Vista以降ではデフォルトで有効になっています )。 リモートデスクトップゲートウェイを使用して、接続を管理し、RDPセキュリティを構成します。



AppCert DLLキーの変更



システム: Windows

権利:管理者、システム

説明: AppCertDLLsキー値で指定されたDLLは、頻繁に使用されるAPI関数CreateProcess、CreateProcessAsUser、CreateProcessWithLoginW、CreateProcessWithTokenW、WinExecを呼び出す各プロセスにロードされます。 AppCertDLLsキー値は、悪意のあるDLLに特定のプロセスをロードして実行させることにより悪用される可能性があります。 AppCertDLLsは、次のレジストリキーに保存されます。

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager



保護に関する推奨事項:潜在的に危険なソフトウェアをブロックし、AppLockerやDeviceGuardなどの未知のDLLをダウンロードするためのあらゆる手段を使用してください。



AppInit DLLキーの変更



システム: Windows

権利:管理者、システム

説明: AppInit_DLLsキー値で指定されたDLLは、user32.dllがロードする各プロセスにロードされます。 実際には、これはほとんどすべてのプログラムです。

AppInit_DLLsは、次のレジストリキーに格納されます。



AppInit_DLLsキー値は、悪意のあるDLLをロードして特定のプロセスを開始することにより、権限を超えるために悪用される可能性があります。 AppInit_DLLs機能は、Windows 8以降でセキュアブートがアクティブ化されると無効になります。



保護の推奨事項: Windows 8より前のOSバージョンを使用し、セキュアブートを有効にすることを検討してください。 あらゆる種類の手段を使用して、潜在的に危険なソフトウェアをブロックし、AppLockerやDeviceGuardなどの未知のDLLをダウンロードします。



アプリケーション互換性サブシステムの悪用(アプリケーションシミング)



システム: Windows

権利:管理者

説明: Microsoft Windowsアプリケーション互換性インフラストラクチャ/フレームワークは 、プログラムとWindows更新およびOSコード変更との互換性を確保するため作成されました。 互換性システムは、いわゆるシム(「ガスケット」)を使用します。これは、プログラムとOSの間のバッファーとして機能するライブラリです。 シムキャッシュを使用して、システムはシムガスケット(.sdbデータベースとして保存)の必要性を判断します。 さまざまな.sdbファイルには、アプリケーションコードをインターセプトして処理し、OSにリダイレクトするためのさまざまな手順が格納されます。 インストーラー(sdbinst.exe)によってインストールされたすべてのshim-gasketsのリストは、デフォルトで次の場所に保存されます。



カスタムshimデータベースは次の場所に保存されます。



ユーザーモードで保護するために、shim-gasketsを使用してOSカーネルを変更する機能は除外されており、それらをインストールするには管理者権限が必要です。 ただし、一部のシムパッドを使用して、ユーザーアカウント制御(UAC)、DLLインジェクションをバイパスし、 データ実行防止構造例外処理を無効にし、メモリアドレスをインターセプトできます。 シムガスケットを使用する攻撃者は、権限を増やしたり、バックドアをインストールしたり、OS保護(Windows Defenderなど)を無効にしたりできます。



保護の推奨事項:アプリケーションのシャイニングを防ぐ方法は多くありません。 OSの安定性に関する問題を回避するために、アプリケーションの互換性を無効にすることはお勧めしません。 MicrosoftはKB3045645をリリースしました。KB3045645は、sdbinst.exeファイルの「auto-elevate」フラグを削除して、シムシステムがUACをバイパスするのを防止します。



ユーザーアカウント制御のバイパス



システム: Windows

権利:ユーザー、管理者

説明: UACをバイパスする方法は多数ありますが、最も一般的な方法はUACMeプロジェクトで実装されてます。 UACをバイパスする新しい方法は、バイナリファイルまたは昇格されたスクリプトを実行できるシステムアプリケーションeventvwr.exeを悪用するなど、定期的に発見されています。 悪意のあるプログラムは、UACがユーザーにプロンプ​​トを表示せずに特権の昇格を許可する信頼できるプロセスに埋め込まれることもあります。

eventvwr.exeを使用してUACをバイパスするには、Windowsレジストリでキーが変更されます。

[HKEY_CURRENT_USER] \ Software \ Classes \ mscfile \ shell \ open \ command

sdclt.exeを使用してUACをバイパスするには、Windowsレジストリのキーを変更します。

[HKEY_CURRENT_USER] \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths \ control.exe;

[HKEY_CURRENT_USER] \ Software \ Classes \ exefile \ shell \ runas \ command \ isolatedCommand



保護に関する推奨事項:保護されたシステムのローカル管理者グループからユーザーを削除します。 可能であれば、UAC設定で最高レベルの保護を有効にします。



DLL検索インターセプト(DLL検索順序ハイジャック)



システム: Windows

権利:ユーザー、管理者、システム

説明:この手法は、アプリケーションが動作するために必要なDLLファイルを見つけるために、アルゴリズムの脆弱性を悪用することにあります( MSA2269637 )。 多くの場合、DLL検索ディレクトリはプログラムの作業ディレクトリであるため、攻撃者はソースDLLを同じファイル名を持つ悪意のあるDLLに置き換えることができます。

プログラムがネットワーク共有などのリモートディレクトリに現在のディレクトリをインストールすると、DLL検索に対するリモート攻撃が実行される可能性があります。 また、攻撃者は、DLL検索パラメーターを記述する.manifestファイルまたは.localファイルを置き換えることにより、DLLの検索およびロード方法を直接変更できます。 攻撃されたプログラムが高レベルの特権で実行されている場合、そのプログラムによってロードされた悪意のあるDLLも高い権限で実行されます。 この場合、この手法を使用して、ユーザーから管理者またはシステムへの特権を増やすことができます。



保護に関する推奨事項:リモートDLLの読み込みを禁止します(Windows Server 2012+ではデフォルトで有効になっており、XP +およびServer 2003+のアップデートで利用可能)。 DLLのセーフ検索モードを有効にします。これにより、現在のアプリケーションディレクトリでDLL検索を実行する前に、検索ディレクトリを%SYSTEMROOT%タイプのディレクトリに制限します。

安全なDLL検索モードの有効化:

コンピューターの構成> [ポリシー]>管理用テンプレート> MSS(レガシー):MSS:(SafeDllSearchMode)安全なDLL検索モードを有効にします。

対応するレジストリキー:

HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ SafeDLLSearchMode。



PowerSploitのPowerUPモジュールなどのツールを使用してDLLの欠陥を修正するために、保護されたシステムを監査することを検討してください。 悪意のある、潜在的に危険なソフトウェアをブロックすること、およびマイクロソフトの推奨事項に従うことを忘れないでください。



Dylib Search Interception(Dylibハイジャック)



システム: macOS

権利:ユーザー

説明:この手法は、macOSおよびOS Xのdylib動的ライブラリ検索アルゴリズムの脆弱性に基づいています。 一番下の行は、攻撃されたアプリケーションが読み込むdylibを決定し、同じ名前のdylibの悪意のあるバージョンをアプリケーションの作業ディレクトリに配置することです。 これにより、アプリケーションはプログラムの作業ディレクトリにあるdylibをロードします。 この場合、悪意のあるDylibは、攻撃されたアプリケーションのアクセス権で実行されます。



保護の推奨事項:ユーザーがdylib検索ディレクトリにファイルを書き込めないようにします。 Objective-SeeのDylib Hijacking Scannerを使用して脆弱性を監査します。



権限昇格の悪用



システム: Windows、Linux、macOS

権利:ユーザー

説明:相手は、ソフトウェアの脆弱性を使用して、攻撃されたシステムの特権を増やすことができます。



保護に関する推奨事項:保護されたネットワークに接続されているすべての保護されたワークステーション、サーバー、ネットワーク機器、およびその他のデバイスでの定期的なソフトウェア更新。 保護された組織に対して使用できる脅威、脆弱性、および悪用プログラムの種類を分析します。 Windows 10用のWindows Defender Exploit Guard(WDEG)や、以前のバージョンのWindows用のEnhanced Mitigation Experience Toolkit(EMET)などのエクスプロイト保護システムも推奨されます。



h3 EWMインジェクション(エクストラウィンドウメモリインジェクション)

システム: Windows

権利:管理者、システム

説明:この手法は、Windowsウィンドウの追加メモリ、いわゆるExtra Window Memory(EWM)を悪用することです。 EWMサイズは40バイトで、32ビットポインターの格納に適しています。多くの場合、プロシージャへの参照を示すために使用されます。 攻撃連鎖中の悪意のあるプログラムは、EWMに悪意のあるコードへのポインタを置くことができます。これは、その後、感染したアプリケーションプロセスによって起動されます。



保護に関する推奨事項: EWMインジェクション手法はOS開発機能の不正使用に基づいているため、悪意のあるプログラムや悪意のあるツールの起動を防ぐことを目的とする必要があります。 AppLocker、ホワイトリストアプリケーション、またはソフトウェア制限ポリシーを使用して、潜在的に危険なソフトウェアを特定してブロックすることをお勧めします。



ファイルシステムレベルでのアクセス許可の欠点(ファイルシステムのアクセス許可の弱点)



システム: Windows

権利:ユーザー、管理者

説明:この手法の本質は、さまざまなプロセスによって自動的に起動される実行可能ファイルの置換です(たとえば、OSの起動時または特定の時間、実行可能ファイルの権限が正しく構成されていない場合)。 なりすましの後、悪意のあるファイルはプロセス権限で起動されるため、プロセスのアクセスレベルが高い場合、攻撃者は特権を昇格できます。 この手法では、攻撃者はWindowsサービスのバイナリファイルを操作しようとする可能性があります。

攻撃の別の変形は、自己解凍インストーラーの作業におけるアルゴリズムの欠点に関連しています。 インストールプロセス中に、インストーラーは.dllや.exeなどのさまざまな便利なファイルを%TEMP%ディレクトリに解凍することがよくありますが、解凍されたファイルへのアクセスを制限する適切なアクセス許可を設定しない可能性があり、これにより攻撃者はファイルのなりすましを実行できます。結果として、権限を増やすか、アカウント制御をバイパスします。 一部のインストーラーは拡張特権で実行されます。



セキュリティの推奨事項:アカウント権限を制限して、管理者のみがサービスを管理し、サービスで使用されるバイナリファイルと対話できるようにします。 標準ユーザーのUAC特権エスカレーションオプションを無効にします。 UAC設定は、次のレジストリキーに保存されます。



特権エスカレーションリクエストを自動的に拒否するには、キーを追加する必要があります。



インストーラーの動作を制御するには、キーを追加する必要があります。





Windows API機能呼び出しのインターセプト(フック)



システム: Windows

権利:管理者、システム

説明: Windows API関数は通常、DLLに保存されます。 フックの手法は、次の方法でAPI関数への呼び出しをリダイレクトすることです。



インジェクションと同様に、攻撃者はフックを使用して悪意のあるコードを実行し、その実行をマスクし、攻撃されたプロセスのメモリにアクセスし、特権を増やすことができます。 攻撃者は、認証データを含むパラメーターを含むAPI呼び出しをキャプチャできます。 フックは通常、システム内の悪意のある活動を隠すためにルートキットによって使用されます。



保護に関する推奨事項: OSでのイベントの傍受はシステムの通常動作の一部であるため、この機能の制限は、ウイルス対策ソフトウェアなどの正当なアプリケーションの安定性に悪影響を及ぼす可能性があります。 傍受技術の使用を防ぐための努力は、攻撃連鎖の初期段階に集中する必要があります。 SetWindowsHookExおよびSetWinEventHook関数の呼び出しを監視し、ルートキット検出器を使用して、プロセスの異常な動作を分析することにより、悪意のあるフックアクティビティを検出できます。



IFEOインジェクション(イメージファイル実行オプションインジェクション)



システム: Windows

権利:管理者、システム

説明:イメージファイル実行オプション(IFEO)メカニズムを使用すると、開発者が以前にレジストリで指定したプログラムの代わりにデバッガーを実行できます。



インジェクションと同様に、任意のコードを実行して特権を高めたり、システムの足がかりを得たりすることにより、値[executable]を悪用することができます。 悪意のあるプログラムは、IFEOを使用して、さまざまなシステムおよびセキュリティアプリケーションをリダイレクトおよび拒否するデバッガーを登録することにより、保護をバイパスできます。



保護に関する推奨事項:説明されている手法は、通常のOS開発ツールの不正使用に基づいているため、制限があると、セキュリティアプリケーションなどの正当なソフトウェアが不安定になる可能性があります。 IFEOインジェクションテクニックの使用を防ぐための努力は、攻撃チェーンの初期段階に集中する必要があります。 Debug_processおよびDebug_only_this_processフラグを使用してプロセスを監視することにより、このような攻撃を検出できます。



デーモンの起動(デーモンの起動) >



システム: macOS

権利:管理者

説明:この手法は、攻撃者がplistファイルで指定したシステムレベルの起動サービス、Launch Daemonのパラメータを変更することで構成されます。 システムが起動すると、Launchdプロセスは次のディレクトリにあるplistファイルからサービス(デーモン)のパラメーターをロードします。



起動デーモンは管理者特権で作成できますが、rootアカウントで実行されるため、攻撃者は特権を昇格できます。 plistファイルのアクセス許可はルートである必要があります。ただし、その中で指定されたスクリプトまたはプログラムは、それほど厳密ではないアクセス許可を持っている場合があります。 したがって、攻撃者はplistで指定された実行可能ファイルを変更し、現在のシステムサービスを変更してシステムを保護したり、特権を昇格したりできます。



セキュリティのヒント権限のある管理者のみが起動デーモンを作成できるように、ユーザー特権を制限します。 KnockKnockなどのアプリケーションを使用して、システム上でplistファイルがどのように作成されるかを監視することを検討してください。



新しいサービス



システム: Windows

権利:管理者、システム

説明:システムへのアクセスに名前を付けると、攻撃者は新しいサービスを作成し、自動的に開始するように設定できます。 サービス名は、オペレーティングシステムに固有の名前を使用して偽装できます。 サービスは管理者権限で作成できますが、システムの代わりに実行されます。 サービスは、コマンドラインから、Windows APIと相互運用可能なリモートアクセスツールを使用して、または標準のWindowsおよびPowerShell管理ツールを使用して作成できます。



セキュリティに関する推奨事項:ユーザー権限を制限して新しいサービスを作成し、許可された管理者のみがこれを行えるようにします。 AppLockerとソフトウェア制限ポリシーを適用します。



パス傍受



システム: Windows

権利:ユーザー、管理者、システム

説明:パスをインターセプトする手法は、実行可能ファイルを、アプリケーションがターゲットファイルの代わりに起動するディレクトリに配置することです。 攻撃者は次の方法を使用できます。



ファイル検索順序ハイジャックは、 検索ハイジャックDLLテクニックを使用してDLLを実行するためにも使用されます。



セキュリティに関する推奨事項:引用符は、構成ファイル、スクリプト、PATH変数、サービス設定、およびショートカットで指定されたパスを示します。 実行可能ファイルの検索順序を覚えて、フルパスのみを使用してください。 リモートソフトウェアから残った古いレジストリキーをクリーンアップして、存在しないファイルを指すキーがレジストリに残らないようにします。 システムのユーザーによるルートディレクトリC:\およびWindowsシステムディレクトリへの書き込みを禁止し、書き込み許可を実行可能ファイルのあるディレクトリに制限します。



Plistファイルの変更(Plist変更)



システム: macOS

権利:ユーザー、管理者

説明:攻撃者は、別のユーザーのコンテキストで実行する独自のコードを指定することにより、plistファイルを変更できます。/ライブラリ/設定にあるplistプロパティファイルは昇格された特権で実行され、〜/ライブラリ/設定からのplist はユーザー特権で実行されます。セキュリティのヒント



plistファイルを読み取り専用にすることで、plistファイルが変更されないようにします。



印刷マネージャーでのポートモニターの変更(ポートモニター)



システム: Windows

権利:管理者、システム

説明:攻撃者は、Windowsが起動するたびに、プリントマネージャ設定(Spoolsv.exe)を悪用して、システムに代わって任意のDLLの実行を手配できます。 Spoolsv.exeは、印刷デバイスと対話するために、いわゆるポートモニターを使用します。これらは、LAN、USB、LPT、またはCOMインターフェイスを介して印刷デバイスに送信される低レベルのコマンドを使用するDLLライブラリです。上記のDLLに格納されているWINDOWS \ SYSTEM32 \:C、およびレジストリに記録:

ます。HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \コントロール\印刷\モニター

ポートモニタは、AddMonitor APIを使用して、または上記のレジストリキーを編集して直接インストールできます。



保護に関する推奨事項: 潜在的に危険なソフトウェアのブロックを整理し、アプリケーション起動制御ツールを使用します。



プロセスへのコードインジェクション(プロセスインジェクション)、 10個のプロセスインジェクションテクニック



システム: Windows、Linux、macOS

権利:ユーザー、管理者、システム、ルート

説明:プロセスインジェクションは、独立した生きているプロセスのアドレス空間で任意のコードを実行する方法です。別のプロセスのコンテキストでコードを実行すると、挿入されたプロセスのメモリ、システム/ネットワークリソース、および場合によっては昇格した特権にアクセスできます。プロセスインジェクションを使用して、セキュリティ手段による悪意のあるアクティビティの検出を回避することもできます。プロセスへのインジェクションを実装する技術は、OSでのプログラム実行のマルチスレッド化を保証するさまざまなメカニズムの悪用に基づいています。以下は、プロセスにコードを挿入するためのいくつかのアプローチです。





•DLLインジェクション。これらは、プロセス内に悪意のあるDLLへのパスを記述し、リモートスレッド(リモートスレッド-別のプロセスの仮想アドレス空間で実行されるスレッド)を作成して実行することにより実行されます。言い換えると、マルウェアはDLLをディスクに書き込み、CreateRemoteTreadなどの関数を使用します。この関数は、挿入されたプロセスでLoadLibrary関数を呼び出します。

•PEインジェクション(ポータブル実行可能インジェクション)は、DLLやEXEなどのPEファイルのメモリ実行機能の不正使用に基づいています。悪意のあるコードは、ディスクにファイルを書き込むことなくプロセスに書き込まれ、追加のコードを使用するか、リモートストリームを作成することにより、実行が呼び出されます。

•スレッド実行のハイジャックには、悪意のあるコードまたはDLLへのパスをプロセススレッドに直接注入することが含まれます。プロセスホロウ法と同様に、フローは最初に中断する必要があります。

•非同期プロシージャコール(APC)インジェクションへのインジェクションには、プロセススレッドのAPCキューへの悪意のあるコードの埋め込みが含まれます。 「Earle Birdインジェクション」と呼ばれるAPCインジェクションの方法の1つは、APCを介して悪意のあるコードを記述してプロセスエントリポイントに起動できる中断プロセスの作成を伴います。 AtomBombingは、APCを使用して、以前にグローバルアトムテーブルに書き込まれた悪意のあるコードを呼び出す別の注入オプションです。

•スレッドローカルストレージ(TLS)インジェクションインジェクションでは、実行可能なPEファイル内のメモリポインターを操作して、プロセスを悪意のあるコードにリダイレクトします。



MacおよびLinux

•システム変数LD_RPELOAD、LD_LIBRARY_PATH(Linux)、DYLIB_INSERT_LIBRARIES(macOS X)またはdlfcnアプリケーションプログラミングインターフェイス(API)を使用して、ライブラリ(共有オブジェクト)をプロセスに動的にロードできます。実行中のプロセス。

•Ptraceシステムコールを使用して、実行中のプロセスに接続し、実行中にプロセスを変更できます。

•/ proc / [pid] / memはプロセスメモリへのアクセスを提供し、任意のデータの読み取り/書き込みに使用できますが、このメソッドは実装の複雑さのためほとんど使用されません。

•Capture VDSO(仮想動的共有オブジェクト)を使用すると、linux-vdso.soからコードスタブを操作して、バイナリELFファイルを実行しながらコードを挿入できます。

悪意のあるプログラムは通常、プロセスへのコードインジェクションを使用してシステムリソースにアクセスします。これにより、攻撃者はシステムの足がかりを得て、攻撃された環境で他の変更を実行できます。より複雑なサンプルでは、​​複数のプロセスインジェクションを実行して、検出を困難にすることができます。



保護に関する推奨事項:プロセスにコードを挿入する方法は、正規のソフトウェアおよびセキュリティ製品に直接影響を与える可能性がある通常のOS機能の悪用に基づいています。傍受技術の使用を防ぐための努力は、攻撃連鎖の初期段階に集中する必要があります。ツールを使用して、AppLockerなどの潜在的に危険なソフトウェアをブロックします。ptraceでのコードインジェクションに対する予防手段としてYamaを使用し、ptraceの使用を特権ユーザーのみに制限します。追加のセキュリティ対策には、高度なアクセス制御とプロセス制限を提供するカーネルセキュリティモジュールの展開が含まれます。そのようなツールには、SELinux、grsecurity、AppArmorが含まれます。



SID履歴インジェクション



システム: Windows

権限:管理者、システム

説明:オブジェクトがあるドメインから別のドメインに移動するたびに、新しいSIDが作成され、これがメインのobjectSIDになります。以前のSIDは引き続きsIDHistoryプロパティに保存されるため、クロスドメイン移行前にオブジェクトが持っていた権限が保持されます。攻撃者が管理者権限を持っている場合、以前に収集したSIDをSID-Historyに挿入して、ドメイン管理者などのより多くの特権アクセスグループまたはアカウントに代わってアクションを実行できます。



保護に関する推奨事項:Windows Server OSバージョン2003以降では、SIDフィルタリングはデフォルトで有効になっています。これには、信頼できるドメインを除くすべてのSIDの削除またはフィルタリングが含まれますが、このオプションを意図的に無効にしてクロスドメインアクセスを許可できます。

SIDをフィルタリングする主な方法:

•コマンドnetdom trust / domain:/ EnableSIDHistory:noを使用して、ドメインフォレスト間の信頼(信頼)設定でSIDHistoryを無効にします

SIDフィルター検疫の適用。これにより、信頼できるドメイン以外のSIDを含むオブジェクトは、信頼するドメインで認証できなくなります。次のコマンドを実行することにより、SIDフィルター検疫が外部の信頼に適用されます。netdom trust / domain:/ quarantine:yes

同じフォレスト内のドメイン間でSIDフィルターを使用することはお勧めしません。フォレスト内のドメインが信頼できない場合、そのドメインはフォレストのメンバーであってはなりません。そのような状況では、まず信頼できるドメインと信頼できないドメインを別々のフォレストに分割し、次にフォレスト間の信頼にSIDフィルタリングを適用する必要があります。



スケジュールされたタスク



システム: Windows

権利:ユーザー、管理者、システム

説明: at、schtasks、Windows Task Schedulerなどのユーティリティを使用して、特定の日時に実行するプログラムとスクリプトをスケジュールできます。 RPCが認証に使用され、プリンターとファイル共有が有効になっている場合、リモートシステムでタスクをスケジュールできます。 リモートシステムでタスクをスケジュールするには、管理者権限が必要です。 攻撃者は、リモートコード実行を使用して、システム権限を取得したり、特定のアカウントでプロセスを開始したりする可能性があります。



保護に関する推奨事項:ユーザー特権を制限します。 PowerSploitのPowerUPモジュールなど、スケジュールされたタスクの解決の弱点を見つけるために使用できるツールの使用。 システムに代わってタスクを実行する機能を無効にし、セキュリティポリシーで[サーバーオペレーターにタスクのスケジュールを許可する]オプションを無効にし、[ ユーザー権利の割り当て:スケジュールの優先度を上げる]設定を有効にします。



サービスレジストリのアクセス許可の弱点



システム: Windows

権利:管理者、システム

説明:ユーザーおよびグループのアクセス許可により、サービス設定が保存されているWindowsレジストリのキーの値を変更できる場合、攻撃者はサービスを起動するための実行可能ファイルへのパスが保存されているキーを直接変更したり、sc.exe、PowerShellまたは登録 攻撃者は、たとえば、FailureCommandなどのサービス障害に関連するパラメーターを変更することもできます。これは、サービス障害または意図的な損傷が発生した場合に実行されるコマンドを示します。 サービスパラメータは、 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ servicesに保存されます



保護に関する推奨事項:保護されたシステムのユーザーが、システムコンポーネントのパラメーターを格納するレジストリのキーを変更できないことを確認してください。 Windows AppLockerなど、潜在的に危険なソフトウェアをブロックするあらゆる可能な手段を使用してください。



SetuidおよびSetgid



システム: Linux、macOS

権利:ユーザー

説明: SetuidおよびSetgidは、ユーザーが実行可能ファイルの所有者またはグループの権限で実行可能ファイルを実行できるようにするUnixシステムの許可フラグです。アプリケーションをルートとして実行する必要がある場合は、sudoファイルにエントリを作成する代わりに、ユーザーはSetuidまたはSetgidフラグを指定できます。反対者は、SetuidおよびSetgidフラグを悪用してシェルエスケープを実行したり(コンソールアプリケーションが別のアプリケーションで開かれたファイルを使用する場合)、SetuidおよびSetgidフラグによるアプリケーションの脆弱性を利用したり、さまざまなユーザーのコンテキストでコードを実行したりできます。 ls -lコマンドでファイル属性を表示すると、上記のフラグは「x」ではなく「s」という記号で示されます。 chmodユーティリティは、コマンドを使用してSetuidおよびSetgidフラグを設定できます。chmodの4777 [画像]chmodのU + S [ファイル]



保護に関する推奨事項: SetuidおよびSetgidフラグが設定されたプログラムの数を最小限に抑えます。



スタートアップアイテム



システム: macOS

権利:管理者

説明:攻撃者は廃止されたものを使用できますが、macOS Sierra、StartupItemsを使用するアプリケーションの自動起動メカニズムで、ブート時にルート権限でコードの起動を構成できます。 StartupItemsは、 / Library / Startupitems内のディレクトリ、コマンドスクリプト、およびStartupParameters.plistプロパティファイルです。 スクリプトおよびプロパティファイルは、階層の最上部にある必要があります: / Library / Startupitems / [MyStartupItem]



保護の推奨事項: StartupItemsメカニズムは廃止されているため、 / Library / Startupitems /ディレクトリへの書き込みを禁止すると、スタートアップ項目の作成ができなくなります。



須藤



システム: Linux、macOS

権利:ユーザー

説明:相手は、Sudo構成の欠陥を利用して、他のユーザーに代わってコマンドを実行したり、より高い特権を持つプロセスを生成したりできます。 sudoオプションは/ etc / sudoersファイルに保存されます。このファイルを編集するには昇格した権限が必要です。 sudoersファイルは、ユーザーが他のユーザーまたはグループに代わって実行できるコマンドを記述します。これにより、ユーザーはほとんどの時間、最小限の特権で作業でき、必要な場合にのみ特権を増やすことができます。しかし、sudoersファイルには、パスワードが要求されるため、ユーザーを指定することができません:ALL:ユーザー名がALL(ALL)NOPASSWDを=



保護に関する推奨事項:ユーザーがsudoを実行するときに常にパスワードを入力できるように、sudoersファイルを編集する必要があります。Linuxで監査すると、実際のユーザーIDと有効なユーザーIDが一致しない場合に警告を生成できます(これは、ユーザーがsudoを使用する場合に発生します)。



須藤キャッシング



システム: Linux、macOS

権利:ユーザーの

説明:OCX Proton Malwareなどのさまざまな悪意のあるプログラムは、sudo設定を悪用して、パスワードを入力せずにrootとしてコードを実行できます。 sudoツールキットはシステム管理用に作成されたため、timestamp_timeoutなどの便利な機能があります。このパラメーターは、コマンドがrootパスワードを要求しないsudo開始間の時間を分単位で保存します。 Sudoはしばらく資格情報をキャッシュできました。 Sudoの最後の開始のタイムスタンプは/ var / db / sudoに保存され、指定されたタイムアウトを決定するために使用されます。さらに、tty_tickets変数があります、各新しいターミナルセッションを個別に処理するため、コンソールの1つのインスタンスでのタイムアウトは、別のインスタンスでのタイムアウトに影響しません。



保護の推奨事項:timestamp_timeout = 0パラメーターを設定して、sudoが実行されるたびにシステムがrootパスワードを要求するようにします。tty_ticketsパラメーターオンにして、コマンド行セッションを介して攻撃が実装されないようにします。



有効なアカウント



説明:攻撃者は、アクセス資格情報を使用して特定のユーザーまたはサービスアカウントの資格情報を盗み、ソーシャルエンジニアリングを使用してインテリジェンスプロセス中に資格情報を取得できます。 侵害された資格情報を使用して、アクセス制御システムをバイパスし、リモートシステムおよびVPN、OWA、リモートデスクトップなどの外部サービスにアクセスしたり、ネットワークの特定のシステムおよび領域で昇格した特権を取得したりできます。 シナリオが成功した場合、攻撃者はマルウェアを拒否して検出を困難にすることができます。 また、攻撃者は事前定義された名前とパスワードを使用してアカウントを作成し、他の手段の使用に失敗した場合にバックアップアクセスを維持できます。



保護に関する推奨事項:パスワードポリシーを適用し、企業ネットワークの設計と管理に関する推奨事項に従って、すべての管理レベルで特権アカウントの使用を制限します。 攻撃者が広範囲にアクセスできるようにする可能性のあるものを識別するための、ドメインアカウントとローカルアカウント、およびそれらの権限の定期的なチェック。 SIEMシステムを使用したアカウントアクティビティの監視。



Webシェル



システム: Windows、Linux、macOS

説明:攻撃者は、ネットワークにアクセスするためのゲートウェイまたは攻撃されたシステムへの冗長アクセスとして、攻撃者がWeb Shellを使用して、攻撃された環境へのメインアクセスチャネルを検出およびブロックする場合のセキュリティを確保するためのバックアップメカニズムとして使用できます。



保護の推奨事項:外部Webサーバーが定期的に更新されていること、およびその後の実行で攻撃者がサーバーにファイルまたはスクリプトをアップロードできる既知の脆弱性がないことを確認してください。 サーバー管理権限を持つアカウントとグループの権限が、Webサーバーへのログイン、Webシェルの起動、またはWebサーバーへの固定に使用できる内部ネットワークアカウントと一致しないことを確認します。 Web Shellは検出が難しい 接続を開始せず、サーバー側は小さく無害です。たとえば、PHPバージョンのChina Chopper Webシェルは次のようになります。

[?php eval ($ _POST ['password']);]



All Articles