フォレンジックLevel 3★★★☆☆50 pts

イベントログからブルートフォース攻撃を検出せよ
Detect Brute-Force Attack in Event Logs
今回のミッションサーバー `kinoco-srv01` の sshd 認証ログ `/challenge/auth.log` を解析し、ブルートフォース攻撃を成功させた攻撃者のセッションを特定してください。
このサーバーはハニーポットで、セッションを開くたびに PAM モジュールがカナリアトークンを発行し、次の形でマスクして記録します。
sshd[PID]: pam_canary(sshd:session): token issued for USER: <hex>
hex = トークン(ASCII 文字列)の各バイトを、SHA-256("<PID>:<送信元ポート>") のダイジェスト 32 バイトを繰り返したものと XOR し、16進にしたもの
PID と送信元ポートは、そのセッションの `Accepted password` 行の値です。全セッションが同じ形のトークンを持つので、どれが攻撃者のものかは、ログイン失敗の様子から決める必要があります。フラグは、攻撃者のセッションのトークンです。
使えるツール: python3, grep, awk
ヒント
ヒント 1見る
Failed password の行を、送信元 IP ごとに数えます。内部のアドレスか外部のアドレスか、短い時間に集中しているかも見ます。
ヒント 2見る
失敗が突出して多く、その後に Accepted で成功した外部 IP が攻撃者です。ほかにも、失敗だけで成功しない外部 IP、数回打ち間違えて成功する内部ユーザー、外部から普通にログインする社員がいます。
ヒント 3見る
攻撃者の Accepted 行の PID と送信元ポートから鍵を作り、同じ PID の pam_canary 行の hex を XOR で戻します。