Splunk BOSS of the SOC ver 2について(Lateral Movement)

[Boss of the SOC (BOTS) Advanced APT Hunting Companion App for Splunk](https://splunkbase.splunk.com/app/4430/)
Hunting an APT with Splunk Workshop
Welcome to the Hunting an APT with Splunk Workshop based on the Boss of the SOC 2017 data set.

こちらを元に、手順を追ってみる。データセットは[ここ](https://github.com/splunk/botsv2)
なお、ログの時間を合わせるためユーザの時間帯を**(GMT -08:00)**にする必要がある。

全１３回

1. [概要とPowerShell Empire](https://qiita.com/toshikawa/items/511af1a3054ab81cd475)
2. [FTP Exfiltration](https://qiita.com/toshikawa/items/ca6483e4c0ef7f3bb9d3)
3. [DNS Exfiltration](https://qiita.com/toshikawa/items/93a57d9ac0e06bab0bde)
4. [Adversary Infrastructure](https://qiita.com/toshikawa/items/75cbfa0b522735bc5228)
5. [Spearphishing Attachment](https://qiita.com/toshikawa/items/b9bc3527c0f9787d6be1)
6. [User Execution](https://qiita.com/toshikawa/items/945e271b05c1ea55ef34/)
7. [Account Persistence](https://qiita.com/toshikawa/items/df27a896ab71bafb512d)
8. [Scheduled Task](https://qiita.com/toshikawa/items/b203eb78c699192cfc6d/)
9. [Indicator Removal](https://qiita.com/toshikawa/items/8e0c730280e051a3ed4e/)
10. [User Agent Strings](https://qiita.com/toshikawa/items/bb0055bf74af461824a9/)
11. [OSINT Gathering](https://qiita.com/toshikawa/items/4cad2830289bc83ca330/edit)
12. [Lateral Movement](https://qiita.com/toshikawa/items/054c8c358c79758dec25/)
13. [Data Staging](https://qiita.com/toshikawa/items/886df42faf744c299985/)

#Lateral Movement
##Lateral Movement - Hypothesis
>仮説
敵は、Windows Management Instrumentation（WMI）を使用して他のシステムに横方向に移動するように見えます。
説明
Windows Management Instrumentation（WMI）は、Windowsシステムコンポーネントへのローカルおよびリモートアクセスのための統一された環境を提供するWindows管理機能です。 ローカルアクセスおよびリモートアクセスにはWMIサービス、リモートアクセスにはサーバーメッセージブロック（SMB）およびリモートプロシージャコールサービス（RPCS）を使用します。 RPCSはポート135で動作します。攻撃者はWMIを使用してローカルおよびリモートシステムとやり取りし、横方向移動の一部としてファイルのディスカバリおよびリモート実行の情報を収集するなど、多くの戦術機能を実行する手段として使用できます。

####How Might We Confirm or Refute Our Hypothesis?
- 一般的に横方向の動きとWindowsホスト間の通信を具体的に表示する方法を提供するデータセット（ソースタイプ）は何ですか？
- Windowsホスト間のネットワーク通信を確認できますか？
- 他のホストで同様のアクティビティが発生していることを示す可能性のある、ホストで実行されたアクションはありますか？
- システム間の通信を容易にする特定のプロセスが実行されていますか？
- どのシステムが相互に通信していますか？
- それらのシステムにはどのユーザーが関連付けられていますか？

##Lateral Movement - Windows Management Instrumentation
>WindowsイベントログとSysmonを使用した横方向の動きの追跡

>JPCERT/CCなどのガイダンスに従って、Sysmonと組み合わせた標準のWindowsログを使用して、横方向の動きを識別できます。

####wmic Execution
>JPCERT docで提供されるガイダンスに基づいて、Sysmonを使用して検索を作成でき、11個のイベントが見つかります。これらはすべてwrk-klagefに関連付けられています。 \にはエスケープ文字が必要であることを思い出してください。

####wmic Network Connection
>Sysmonのネットワーク接続イベントで運がありませんでした。 これは、これらのイベントが記録されていないためである可能性があります。 これは、他に発見したものに応じて可視性のギャップがあるかどうかを評価するためのものです。

####What Should We See In WMI?
>JPCERTのドキュメントで説明されているように、KMIのワークステーションはWMIを使用して横方向の動きの兆候を示しているようです。 ただし、成功を示唆する他の証拠はありません。 他に何が使えるか見てみましょう。 ドキュメントをさらに進めると、Windowsイベントコード4624および4672を探す必要があることもわかります。

>WMIでさらに検索する必要があるかどうかを確認するために取得できる追加情報はありますか？ さらに調査を行い、他に横方向の動きを示すものを見てみましょう。 Teymur Kheirklabarovによるプレゼンテーション「Windowsインフラストラクチャでのハンティングラテラルムーブメント」は、宛先の観点からWMIのリモート実行を見つけるための良い方法を提供します。

>ログオンタイプが3（ネットワークログイン）のWindows 4624イベントを探し、その後にWindows 4672イベント（特別な特権が割り当てられている）に続いてwmiprvse.exeのSysmon Process Creationを探すと、WMI経由でリモート実行を識別できる場合があります。

####Executions in Network Login Sessions
>Teymurのプレゼンテーションでの検索をガイドとして使用して、今のところログインとSysmonに焦点を当てましょう。 4672イベントコードに少し戻ります。 ネットワークログインであるすべての成功したWindowsログインイベントと、svchost.exeで終わるParentCommandLine値を持たないすべてのSysmonプロセス作成イベントを収集しましょう。

>Windowsイベントには同じ名前のフィールドが複数あるため、2番目の値はキャプチャする新しいログオン値であることがわかっているので、evalステートメントを使用してLogon_IDおよびSecurity_IDの2番目の値を取得し、loginおよびuser_idに配置しますそれぞれフィールド。最初の値が必要な場合は、0からカウントを開始するため、evalコマンドで0を指定します。

>Windowsイベントから値loginを取得し、SysmonデータからLogonIdの値を取得してそれらをまとめるsessionという名前の新しいフィールドを作成します。

>そのセッションが作成されたら、transactionコマンドを使用してすべてのセッション値をグループ化しますが、Windowsネットワークログインイベントでセッションが開始されることを常に確認してください。 ParentImageフィールドに複数の値がある場合は、イベントが作成されたときにそれらを並べ、eventcountが1より大きい値を返します。これにより、追加のSysmonイベントを持たない孤立したログインイベントのみが削除されます。

>Parent_Processという名前の新しいフィールドを作成し、そのフィールドから2番目の値を取得します。最初のフィールドはnullとして表示され、関連するフィールドを一覧表示します。

>その一連のステップで、ここに検索結果があります。 venusとwrk-klagerfの両方が、ネットワークログインセッションからアカウントservice3を使用した実行の兆候を示しているように見えることがわかります。

##Lateral Movement - Inspecting Logins
>ログインセッション

>WindowsイベントログとSysmonを使用して特定のログインセッションを識別することにより、それらの値を使用して、そのログインセッション内で合計で発生したアクティビティに関する洞察を得ることができます。

####Inspecting Logon Sessions (1/2)
>これで、セッション値を取得し、元のフィールド名Logon_IDおよびLogonId（SysmonおよびWindowsイベント）を使用して、特定のホストでこれらのセッション中に発生したすべてのイベントを分割できます。 読みやすくするために、スライドでevalコマンドを使用してCommandLineおよびParentCommandLineを74文字に制限しました。これにより、PowerShellが結果にエンコードされていることがわかりますが、アプリでは完全な値があります（スクロールを開始します） 右！）Windows 4624イベントコードと4672イベントコードがあることに注意してください。 これは、元の検索では結果にvenusが表示されなかったにもかかわらず、この例で見たWMIの横方向の動きのモデルに確かに適合しています。

####Inspecting Logon Sessions (2/2)
>他のセッションIDで同じことを行うと、これらのセッション中に実行されていたプロセスを確認できます。

####Do We See This Elsewhere?
>セッションIDを使用した以前の検索の両方で、最初に表示されるParentCommandLineは、セキュリティで保護されたスイッチを含むwmiprvse.exeです。 同じParentCommandLineを使用すると、他の場所で表示できますか？ はい、wrk-btunでも確認できます。 コマンドラインの値はユーザーとは異なりますが、エンコードされたPowerShellをデコードすると、同じクレードルではないにしても類似したものが表示される可能性があります。

####Invoke-WMI
>この呼び出しは、横方向に移動する方法であり、機能がどのように機能するかについての説明を提供することがわかります。 これに基づいて、これがビリーのワークステーションで足場を得るために取られた最初のアクションであると結論付けることは安全でしょう。

##Lateral Movement - Findings
##Were We Able To Confirm Our Hypothesis?
- Windowsリモート管理ツールは、横方向の移動に使用されます
 - 特にWMI
- 2台の追加ホストが最初のホストから侵害されたようです

####What We Learned
- 内部ホストvenusとwrk-klagerfは両方ともwrk-btunからの横方向の動きを介して感染しました
- PowerShellは、横方向の動きを容易にするために使用されました
- プロセスはすべてエンコードされたPowerShellを実行しています
- Wrk-btunは、異なるランチャーでエンコードされたPowerShellを認識しますが、同じコマンド

####What should we operationalize?
>各ハントの終わりに、私たちは何を取り、インシデント対応チームにフィードバックできるかについて考えたいと思います。 これは、ボックスを引っ張ってフォレンジックアクティビティを実行するなどの追加アクティビティであるか、インジケータを取得してSIEMまたはログ管理システムにフィードするか、発見したことに基づいて新しい分析とアラートを構築することができます。 一日の終わりには、先ほど言ったように、狩りから何かを学ぶ必要があります！

- エンコードされたPowerShellに関するアラート
- 環境で実行する必要がありますか？
 - Windowsリモート管理ツール-必要なもの、必要でないものを理解し、不要なものをオフにします
- 不要な場合は起動されると警告する
 - これらのツールを使用するための一般的なパスを理解するための手段
- 特定の時間に、管理ワークステーションまたはジャンプサーバーまたは指定された場所からのみアクセスする必要がありますか？
 - 横方向の動きを示す可能性のある特定のアクションの順序に関するアラート
- たとえば、EventCode 4624タイプ3の後に4672が続き、Sysmonイベントコード1が続きます
 - 環境内のデータフローを理解し、ワークステーションが他のワークステーションと通信する必要がありますか？

##まとめ
`table`と`transaction`をうまく使うとわかりやすい表示ができる。
EventCodeの遷移は要確認。