Splunk BOSS of the SOC ver 2について(Adversary Infrastructure)

[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/)

#Adversary Infrastructure
##Adversary Infrastructure - Hypothesis
>仮説
敵は、すでに発見したものを超えて、インフラストラクチャの複数のコンポーネントを確立しました。
説明
多種多様なクラウド、仮想プライベートサービス、ホスティング、コンピューティング、ストレージソリューションが利用可能です。 さらに、ボットネットはレンタルまたは購入できます。 これらのソリューションを使用すると、攻撃者はインフラストラクチャからの攻撃をステージング、起動、および実行できます。これらのインフラストラクチャは物理的に結び付けられておらず、迅速にプロビジョニング、変更、シャットダウンできます。

####How Might We Confirm or Refute Our Hypothesis?
- 追加のインフラストラクチャを識別するために使用できる指標はありますか？
- IPインジケーター45.77.65.211から始めます
- 関係を潜在的に特定するために、これらの一般的な指標をどこで調査できますか？

##Spearphishing Attachment - SMTP
>SMTPの属性

>電子メールは、ハント中に使用できる多くの属性を提供します。 stream：smtpを検索するときに、一般的な添付ファイル名との類似点と相違点を探して、攻撃の標的を決定できます。

####Attack Vector - Find the Filename
>信じられないほど幸運でない限り、特定のファイルの配信は、敵が混乱しない限り、キャッチする可能性が高いものではありません。優れた脅威インテリジェンスを持っているか、キルチェーンの他の部分を介して戻ってきました。 何を探すべきか。 ただし、これらの調査結果を運用できるようになれば、将来これらの攻撃をより迅速に検出できるようになります。

>他の指標をキャプチャした場合、または被害者/ターゲットが誰であるかを知っている場合、この最近取得した知識を使用して狩りをすることができます。

>ここでの検索は、stream：smtpデータを介して送信されたいくつかの添付ファイルがあることを示しています。 他の環境ではより多くの添付ファイルをふるいにかける可能性が高いことを認識しますが、attach_filename {}フィールドを使用すると、添付ファイルの種類がわかります。 これを出発点として使用できます。

####Narrowing Time
>また、攻撃活動が8月23日頃に発生し始めたことを知っています。したがって、フィッシングメールが配信された場合、8月23日より前に発生していました。 すぐに行動するので、注意して、ウィンドウをあまり速く閉じないようにしましょう。

>さらに、特定のファイルタイプが他のファイルタイプよりも興味深いと仮定することができます。この場合、zipファイルは見たいファイル拡張子になる可能性が高いと仮定できます。

検索期間等は`575,512 件のイベント (2017/08/01 0:00:00.000～2017/08/24 0:00:00.000)`

####Focus on a Specific File
>攻撃活動の前に、invoice.zipというファイルを含む4つのイベントが見られました。 これは非常に無害なファイル名のように聞こえるので、仮説を検証または無効にするのに役立つかどうかを評価するために、追加のコンテキストを収集する必要があるかもしれません。

####Contextual Clues 文脈上の手がかり
- フィッシングに関する追加情報を見つける
 - 発信元
 - 送信者名
 - 受信者
 - 添付ファイル名
 - サイズ
 - 日付時刻
 - メール本文
 - 件名
 - その他？

>見つかったファイル名に対応するように検索を絞り込んだので、他に探しているものは何ですか？ 送信者の名前だけでなく、発信者が誰であるかを送信者が誰であるかを理解することができます。 メールの宛先、添付ファイルの名前とサイズ、メールが受信された時刻、件名またはメール、および本文の内容を知りたい。 他に探しているものはありますか？

####Reviewing Contextual Clues
>検索でイベントを確認すると、メールイベントのsrc_ipが異なるサーバーからのものであることがわかりますが、すべて同じ/ 16ネットブロックからのものです。

>同じファイルが含まれる4つのイベントの類似性を探し始めると、それらすべてに共通の送信者、件名、ファイルサイズ、およびハッシュがあったことがわかります。 これは4人の異なる受信者に送信され、これらの受信者のうち少なくとも2人がその後の攻撃活動で影響を受けたことがわかります。 これにより、このファイルが他のファイルと比較して探しているファイルであるというある程度の自信が得られます。

#####receiver of Events with invoice.zip
```Splunk:SPL
index=botsv2 sourcetype=stream:smtp attach_filename{}=invoice.zip
| stats count by receiver_email{} | eventstats sum(count) as perc | eval percentage=round(count*100/perc,2) | fields - perc |sort - count
```
| receiver_email{} | count | percentage |
|:--|--:|--:|
| abungstein@froth.ly | 1 | 25.00 |
| btun@froth.ly | 1 | 25.00 |
| fyodor@froth.ly | 1 | 25.00 |
| klagerfield@froth.ly | 1 | 25.00 |

#####Application/Octet-Stream
>また、ファイルのattach_type値がapplication/octet-streamであることもわかります。 Mozillaをざっと見てみると、これがバイナリファイルのデフォルト値であることがわかります。

#####mozillaの文の翻訳
>application
他のタイプのいずれかに明示的に分類されないあらゆる種類のバイナリデータ。 何らかの方法で実行または解釈されるデータ、または使用する特定のアプリケーションまたはアプリケーションのカテゴリを必要とするバイナリデータ。 汎用バイナリデータ（または真のタイプが不明なバイナリデータ）は、application / octet-streamです。 他の一般的な例には、application / pdf、application / pkcs8、およびapplication / zipが含まれます。

##Spearphishing Attachment - Content
>メールメッセージの内容の確認

>電子メール内の大きなテキストの固まりの一部は、電子メール自体の中でメッセージの送信者のIPアドレスを識別するのに役立つ追加のアーティファクトを提供できます。 これらの成果物を取得しやすくするために、rexコマンドを使用してこれらの検索時間抽出を実行できます。

####Content of the Content Field :-)
>イベントを展開すると、すでに述べた以上のイベントの追加フィールドを調べることができます。 まだ注目していない分野の1つは、少しのテキストの固まりであるコンテンツフィールドです。

>コンテンツフィールド内では、メールを処理および移動する方法に沿ってさまざまなシステムを使用できます。 確認すると、送信者のIPアドレスが185.83.51.21として呼び出されていることがわかります。 これにより、実際の送信者がどこにいたのか、他のシステムと一致するかどうかの手がかりが得られる場合があります。

```Splunk:SPL
index=botsv2 sourcetype=stream:smtp attach_filename{}=invoice.zip | fields content{}
```
こちらも`content`で検索していたため結果がでなかった。結果は
`4 件のイベント (2017/08/01 0:00:00.000～2017/08/24 0:00:00.000)`
####Adding Artifacts to Our Search
>各コンテンツの固まりをくまなく調べる代わりに、regexステートメントを使用して、send_ipアドレスを抽出するrexコマンドをすばやくまとめることができます。 次に、その正規表現の結果を取得し、検索コマンドを使用して、新しく見つかったアーティファクトを分離できます。

>tableコマンドを使用してコンテンツフィールドに同じ送信者IPがあるかどうかを確認するために4つのイベントを個別に見ることができますが、これは大規模に混乱する可能性があるため、rexコマンドはその値を分離するための望ましい方法です。

>srcアドレスを調べて以前の検索と比較すると、両方で同じ4つのsrc IPアドレスが表示され、185.83.51.21が4つのイベントすべての元の送信者であることを確認できます。

```Splunk:SPL
index=botsv2 sourcetype=stream:smtp attach_filename{}=invoice.zip | rex field=content{} "sender IP is (?<sender_ip>\d+.\d+.\d+.\d+)" | search sender_ip=185.83.51.21 | stats count by src | eventstats sum(count) as perc | eval percentage=round(count*100/perc,2) | fields - perc |sort - count
```
`content`だったので結果がでなかった。結果は

|src_ip|count|percentage
|:-:|--:|--:|
|104.47.37.62|	1|	25.00
|104.47.38.87|	1|	25.00
|104.47.41.43|	1|	25.00
|104.47.42.76|	1|	25.00

>イベントのcontent_bodyフィールドも確認できます。 確認できることの1つは、4人すべてに送信された電子メールの本文のメッセージテキストが同一だったことです。

#####メール本文
As we have not received a service cessation letter, I am assuming that you might have accidentally overlooked this invoice ‘02/160000506500 (Unpaid)’ for 10,000 GBP. Should you wish to bring an end to the agreement please let us know. Otherwise early withdrawal penalties will apply next month. Pleaser refer to the attached document for payment details. Due to the personal nature of the account we have added a password to the document. Please enter the password (912345678).

##Spearphishing Attachment - OSINT
>OSINTを使用した調査結果の検証（または無効化）

>送信者のドメインに加えて、送信者のIPアドレスに関する追加情報があるので、OSINTを使用して、収集可能な実用的な情報があるかどうかを判断できます。

####Adding Artifacts to Our Search
>OSINTを使用して、src_ipがメールの発信元の手がかりを提供するかどうかを確認すると、見つかった4つのIPはすべてMicrosoftのIPブロックの一部です。 これは、残念ながら狩りを進める助けにはなりません。

####Perform OSINT on 185.83.51.21 Address
>コンテンツフィールドから抽出したsender_ipを見ると、censys.ioなどのOSINTツールまたは他の多くのツールを使用できます。送信者IPはベルギーにあり、smtp12.ymlpsvr.comに関連付けられていることがわかります。

####So What Is ymlpsvr.com?
>ymlpsvr.comの少し追加の調査は、失望をもたらしました。 どうやらそれは、企業が顧客や見込み客にメールを送信するために使用するメーリングリストプロバイダーです。 これは悪意のある送信者ではなく、誰かが私たちの4人のユーザーに電子メールを送信するために利用したサービスのようです。

>MITER PRE-ATT＆CKは、サードパーティのソフトウェアサービスを攻撃手法として使用して参照します。

####Whois
>DomainToolsまたは他のOSINTを使用して、urinalysis.comでwhoisを実行できます。 覚えていれば、このドメインは送信者のメールアドレスでした。 残念ながら、このドメインを確認する際に、ここから引き出すべき顕著なものはないようです。 この時点で、OSINTは私たちにとって少しドライホールでしたが、恥ずかしげに頭を下げる必要はありません。イベントに戻って、他に何があるか見てみましょう。

##Spearphishing Attachment - Commonality
>共通点を見つける

>また、送信者名のような一般的な値を探すこともできます。 同じ送信者が、攻撃が成功する前にメールを送信する可能性があります。 メールの送信元のIPアドレスまたはドメインではできない、一般的な送信者から引き出せるものはありますか？

####Common Sender
>特にファイルに注目するのではなく、少し異なる方法でインジケーターを見てみましょう。 時間範囲を同じに保ちましょうが、代わりにジムスミスがfroth.lyに他のメールを送信したかどうかを確認しましょう。

>特にファイルに注目するのではなく、少し異なる方法でインジケーターを見てみましょう。 時間範囲を同じに保ちましょうが、代わりにJim Smithがfroth.lyに他のメールを送信したかどうかを確認しましょう。

>tableコマンドを使用してキーフィールドを出力すると、電子メールイベントがいつ発生したかを確認できます。 同じ4人の受信者が同じような件名の同じようなメールを受け取ったことがわかります。 添付ファイルのmd5ハッシュも確認できます。tableコマンドを使用してキーフィールドを出力すると、電子メールイベントがいつ発生したかを確認できます。 同じ4人の受信者が同じような件名の同じようなメールを受け取ったことがわかります。 添付ファイルのmd5ハッシュも確認できます。

####Common Attachment
>Malware Alert Text.txtが添付されたメールのコンテンツを検索して、そこに手がかりがあるかどうかを確認できます。 各イベントの下部にあるcontent {}フィールド内には、添付ファイルに関する詳細があります。 イベントが示すように、エンコードはbase64にあります。

####Decode Using CyberChef
>cyberchefなどのBase64デコーダーにbase64値をコピーして貼り付けると、トロイの木馬として検出されたため、添付ファイルが削除されたことがわかります。

#####デコードしたMalware Alert Text.txt
Malware was detected in one or more attachments included with this email message. 
Action: All attachments have been removed.
invoice.doc	 Trojan.ZVEJ-2
invoice.doc	 O97M/Donoff!rfn

####Comparing Emails
>テーブル出力を変更する場合、ブロックされた電子メールコンテンツを調べて、invoice.zipファイルを配信したコンテンツと比較できます。 本体を見ると、正常に配信された添付ファイルと失敗した添付ファイルの間に多くの類似点があります。 それに基づいて、Jim Smithは間違いなく関心のある送信者です。

####Attachment Hash Value
>添付ファイルのファイルハッシュも確認できます。 これは、他の人がファイルについて見たり知ったりしていることを理解するのに役立ちます。 ファイルのハッシュをキャプチャできると、VirusTotalなどのサイトを調査して追加の調査を行うことができます。 4人の受信者はすべて同じファイル名と同じハッシュを持っています。

####Virustotal
>ハッシュを取得してVirusTotalに適用すると、ファイルが実行されるかfroth.lyに送信される前に、このファイルが8月1日にVirusTotalに送信されたことがわかります。 また、ウイルススキャナが悪意のあるファイルを見つけたことを示すものでもありません。 これは、マルウェアがすべてのスキャナーに対して正常に実行されてから攻撃ベクトルとして検出されるまで、マルウェアが構築およびテストされたことを意味します。

##Spearphishing Attachment - Findings
####Were We Able To Confirm Our Hypothesis?
- 同じ4人の受信者が、2つの異なる時間に近い時間内に同じ送信者から電子メールを受信した
 - 初めてマルウェアがトロイの木馬を検出した
 - 二度目はしませんでした
- 両方の攻撃で同一のメタデータ
- 商用サービスから送信
- OSINTは追加の確証を提供しませんでした
- 完全には定かではありませんが、確かにもっと綿密に調べます

####What We Learned
- フィッシングの試みが2回行われた
 - 最初の試行は失敗しました
 - 2回目の試行が成功しました
- 送信者IPは185.83.51.21です
- 送信者名はJim Smith <jsmith@urinalysis.com>です
- フィッシングは両方とも同じ4人の受信者を標的にしました
- フィッシングメールの件名は請求書でした
- 本文は4つのメールすべてで同一でした
- 電子メールは近接して送信されましたが、個別に送信されました
- 添付ファイルは各受信者で同じサイズでした

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

- ドメインのブラックリストを適用して、将来のフィッシング攻撃を監視する
- 送信者IPのアラート/ブラックリストを適用する
 - 両刃の剣–これはビジネスプロセスを阻害しますか？
- ハッシュ値の分析を自動化して脅威のインテルを調べ、添付ファイルのクラウドソーシングの脅威のインテルに関する洞察を得ます
- 同じファイル名/サイズの複数の受信者に外部から着信する添付ファイルについて警告するアナリティクスを開発する

#まとめ
メールもストリームデータから読み解いていくというとても羨ましい話。

なお、ウィルス検知名については
[Windows Defender](https://www.microsoft.com/en-us/wdsi/threats/threat-search?query=TrojanDownloader:O97M/Donoff!rfn)を参照