SplunkでJPCERTログ分析トレーニング(ハンズオン その5)


https://blogs.jpcert.or.jp/ja/2020/07/log_analysis_training.html
で「インシデント対応ハンズオン」でやってきたデータが公開されたのでSplunkでやってみる。

その1
その2、その3
その4の続き

準備

https://jpcertcc.github.io/log-analysis-training/
から
https://github.com/JPCERTCC/log-analysis-training
に飛んで、
git clone https://github.com/JPCERTCC/log-analysis-training.git

レポジトリがダウンロードできるので
zip -r Handson5 ./Handson5で固めて、そのままSplunkにファイルアップロード。設定は全部デフォルト。

その1はtar.gzで固めておいて、今回はzip。その1も後で直します。

ホスト一覧

ホスト名 IPアドレス ユーザ名 OS
WIN-WFBHIBE5GXZ 192.168.16.1 administrator Windows Server 2008
Win7_64JP_01 192.168.16.101 chiyoda.tokyo Windows 7
Win7_64JP_02 192.168.16.102 yokohama.kanagawa Windows 7
Win7_64JP_03 192.168.16.103 urayasu.chiba Windows 7
Win7_64JP_04 192.168.16.104 urawa.saitama Windows 7
Win7_64JP_05 192.168.16.105 hakata.fukuoka Windows 7
Win7_64JP_06 192.168.16.106 sapporo.hokkaido Windows 7
Win7_64JP_07 192.168.16.107 nagoya.aichi Windows 7
Win7_64JP_08 192.168.16.108 sakai.osaka Windows 7
Win10_64JP_09 192.168.16.109 maebashi.gunma Windows 10
Win10_64JP_10 192.168.16.110 utsunomiya.tochigi Windows 10
Win10_64JP_11 192.168.16.111 mito.ibaraki Windows 10
Win10_64JP_12 192.168.16.112 naha.okinawa Windows 10

その5

csv.spl
source="Handson5.zip:*"
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse

またCSVに戻ってしまった。

「管理者権限」が割り当てられたユーザをすべて特定してください。

source="Handson5.zip:*" "Microsoft-Windows-Security-Auditing"
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse 
| rex field=category "(?<message>.*)" 

前回までと同様にmessageフィールドを切り出してメッセージをみてみると
特殊なログオン,"新しいログオンに特権が割り当てられました。とある。
eventID4672なのでバッチリ

new_Privilege_account.spl
source="Handson5.zip:*" "Microsoft-Windows-Security-Auditing" NOT SYSTEM
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse 
| rex field=category "(?<message>.*)" 
| search message="特殊なログオン,\"新しいログオンに特権が割り当てられました。" 
| rex field=category "(?ms)セキュリティ\s*ID:\s*(?<securyID>\S+)"
| rex field=category "(?ms)アカウント名:\s*(?<account>\S+)"

ついでに、アカウントも抽出するようにして、左側を確認すると4つのアカウントが確認できる。

sysg.adminユーザでログオンした端末を特定してください。

kerberos.spl
source="Handson5.zip:*" "Microsoft-Windows-Security-Auditing" "sysg.admin" 
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse 
| rex field=category "(?<message>.*)" 
| rex field=category "(?ms)サービス ID:\s*(?<serviceID>\S+)" 
| search message="Kerberos サービス チケットの操作,\"Kerberos サービス チケットが要求されました。" level="成功の監査" 
| rex field=category "(?ms)クライアント アドレス:\s*(?<src>\S+)"

sysg.adminを入れてみて、messageをみていると、
eventID4624eventID4769のイベントを確認できる。

logon.spl
source="Handson5.zip:*" "Microsoft-Windows-Security-Auditing" "sysg.admin" 
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse 
| rex field=category "(?<message>.*)" 
| search eventID=4769 OR eventID=4624 
| rex field=category "(?<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"

srcをみると4つのIPアドレスが確認できる。

「sysg.adminユーザ」によるログオンは、管理者の意図しないものでした。このような不正ログオンに使用された攻撃手法を特定してください。

Handson3.spl
source="Handson3.zip:*" sysg.admin "Microsoft-Windows-Sysmon"
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse

の結果から 参考資料をみるとわかる。

Handson5.spl
source="Handson5.zip:*" 
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse
| search eventID=4768 OR eventID=4769
| rex field=category "(?ms)アカウント名:\s*(?<account>\S+)" 
| rex field=category "(?ms)アカウント ドメイン:\s*(?<domain>\S+)" 
| table _time eventID account domain
| where isnull(domain) OR lower(mvindex(split(account,"@"),1))=domain

ADサーバのログだと、このように、eventID4768の後eventID4769がこない かつ ドメイン名が小文字といったことで判別は可能(かも)

攻撃者によって追加されたユーザを特定してください。

user_Add.spl
source="Handson5.zip:*" "Microsoft-Windows-Security-Auditing" 
| rex "(?ms)(?<level>[^,]+),(?<date>[^,]+),(?<source>[^,]+),(?<eventID>\d+),(?<category>.*)" 
| reverse 
| rex field=category "(?<message>.*)" 
| search eventID=4720

eventID4624はユーザ追加なので、検索してみると確認ができる。

「machida.kanagawa」は不正なユーザ追加であることが分かりました。どのような攻撃手法 を用いて不正な操作を行ったのでしょうか 。

LISTを確認すると
cmd /c ""C:\Intel\Logs\ms14068\ms14-068.exe -u [email protected] -s S-1-5-21-1524084746-3249201829-3114449661-1127 -d win-wfbhibe5gxz -p p@ssw0rd""
の攻撃が確認できる。

https://jpcertcc.github.io/ToolAnalysisResultSheet_jp/details/MS14-068.htm
で詳細が確認できる。

まとめ

ADの主要なeventIDは覚えておくかチートシートがあると調査が早いと思う。

イベントログからメッセージを切り出してもなんとかなるのがSplunk的かもしれません。