https://app.hackthebox.com/sherlocks/Nubilum-1
Hack The Box Sherlocksとは
Sherlock Scenario
Our cloud administration team recently received a warning from Amazon that an EC2 instance deployed in our cloud environment is being utilised for malicious purposes. Our sysadmin team have no recollection of deploying this EC2, however do recall logging onto the AWS console and finding in excess of 6 EC2s running, which he did not recall deploying. You have been provided with the interview with our Cloud sysadmin within the triage.
当社のクラウド管理チームは最近、当社のクラウド環境にデプロイされた EC2 インスタンスが悪意のある目的に利用されているという警告を Amazon から受け取りました。当社のシステム管理チームは、この EC2 をデプロイした記憶はありませんが、AWS コンソールにログオンしたところ、6 つを超える EC2 が実行されていたことを覚えていますが、それをデプロイしたことは覚えていませんでした。トリアージ内でクラウド システム管理者とのインタビューが提供されています。
CloudTrailのログファイル、インタビュー結果、端末のファストフォレンジックデータが与えられる。
Tasks
Task 1
Which AWS IAM account was compromised by the TA?
どの AWS IAM アカウントが TA によって侵害されましたか?
CloudTrailから見ていく。シナリオに「EC2がデプロイされて…」という話があるので、EC2絡みを見てみる。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/monitor-with-cloudtrail.html
この辺を見て、"eventSource":"ec2.amazonaws.com",
でgrepして眺める。eventNameのRunInstancesを見てみると、forela-ec2-automation
というユーザーで実行されている。これか。
Task 2
Where did the attacker locate the hard coded IAM credentials?
攻撃者はハードコードされた IAM 認証情報をどこで見つけましたか?
状況把握に時間がかかったが、forela-storageが外部公開されていたS3の中身ということらしい。ec2.pyというファイルに認証情報があったので、/backups/ec2.py
が答え。
Task 3
In total how many EC2 hosts were deployed by the TA?
TA によってデプロイされた EC2 ホストは合計何台ですか?
CloudTrailのログを見ればわかりそう。とりあえずforela-ec2-automationでgrepする。
$ grep -ir "forela-ec2-automation" > ../../cloudtrail-automation.txt
結構あるな。行頭にあるファイル名を消したり、Recordsを1つにまとめたりしてからjqで解析する。
$ cat cloudtrail-automation.txt | jq '.[] | select(.eventName == "RunInstances") | select(.sourceIPAddress | startswith("95.181.232"))' > RunInstances.json
RunInstancesの結果を見ればいい。requestParameters.instancesSet
に設定が書いてあってminCount, maxCountを見ると何個インスタンスを一度に立ち上げているか分かる。後はこの個数を加算して答えればいいのだが、一部起動に失敗しているものがあるのでそれは除いてカウントすると13で正答。
Task 4
What is the name of the key pair/s generated by the attacker?
攻撃者によって生成されたキー ペアの名前は何ですか?
CreateKeyPairでキーペア作成ログが見られるので、Grepして見てみると分かる。
$ cat cloudtrail-automation.txt | jq '.[] | select(.eventName == "CreateKeyPair") | .eventTime, .responseElements.keyName, .responseElements.keyPairId' "2023-01-23T15:23:44Z" null null "2023-01-23T15:24:55Z" "Forela-key" "key-0377edb93fc2fb953" "2023-01-24T22:48:34Z" "1337.key" "key-0450dc836eaf2aa37" "2023-01-25T12:01:38Z" "13337" "key-03b0744bfdd2f5053"
より適当に回答の形式に合うものを探して、1337.key, 13337
Task 5
What time were the key pair/s generated by the attacker?
攻撃者によって鍵ペアが生成されたのはいつですか?
Task 4の結果から分かる。
Task 6
What are the key pair ID/s of the key/s generated by the attacker?
攻撃者が生成したキーのキー ペア ID は何ですか?
Task 4の結果から分かる。2つあるが、古い方を答えた。
Task 7
What is the description of the security group created by the attacker?
攻撃者が作成したセキュリティ グループの説明は何ですか?
CreateSecurityGroupから分かる。
$ cat cloudtrail-automation.txt | jq '.[] | select(.eventName == "CreateSecurityGroup") | .requestParameters.groupDescription' "still here"
こわい。
Task 8
At what time did the Sys Admin terminate the first set of EC2s deployed?
システム管理者は、デプロイされた最初の EC2 セットを終了したのはいつですか?
Terminate
でgrepしながら探すと以下が見つかる。
{"eventVersion":"1.08","userIdentity":{"type":"Root","principalId":"949622803460","arn":"arn:aws:iam::949622803460:root","accountId":"949622803460","accessKeyId":"ASIA52GPOBQCIDRARHDC","sessionContext":{"sessionIssuer":{},"webIdFederationData":{},"attributes":{"creationDate":"2023-01-24T21:39:05Z","mfaAuthenticated":"false"}}},"eventTime":"2023-01-24T23:25:55Z","eventSource":"ec2.amazonaws.com","eventName":"TerminateInstances","awsRegion":"eu-central-1","sourceIPAddress":"86.5.206.121","userAgent":"AWS Internal","requestParameters":{"instancesSet":{"items":[{"instanceId":"i-0bcb452ea36482d60"},{"instanceId":"i-0f39235a3d18c5eb3"},{"instanceId":"i-035c686c2f06403df"},{"instanceId":"i-052952da73bd83e08"},{"instanceId":"i-03b481debe6710acd"},{"instanceId":"i-0e01dc48f0e1fa858"}]}},"responseElements":{"requestId":"7f119ebc-f624-4319-8236-85cb573dd270","instancesSet":{"items":[{"instanceId":"i-0f39235a3d18c5eb3","currentState":{"code":32,"name":"shutting-down"},"previousState":{"code":16,"name":"running"}},{"instanceId":"i-03b481debe6710acd","currentState":{"code":32,"name":"shutting-down"},"previousState":{"code":16,"name":"running"}},{"instanceId":"i-052952da73bd83e08","currentState":{"code":32,"name":"shutting-down"},"previousState":{"code":16,"name":"running"}},{"instanceId":"i-0e01dc48f0e1fa858","currentState":{"code":32,"name":"shutting-down"},"previousState":{"code":16,"name":"running"}},{"instanceId":"i-0bcb452ea36482d60","currentState":{"code":32,"name":"shutting-down"},"previousState":{"code":16,"name":"running"}},{"instanceId":"i-035c686c2f06403df","currentState":{"code":32,"name":"shutting-down"},"previousState":{"code":16,"name":"running"}}]}},"requestID":"7f119ebc-f624-4319-8236-85cb573dd270","eventID":"78ee414b-63c7-4405-a568-1ffcd77c17c6","readOnly":false,"eventType":"AwsApiCall","managementEvent":true,"recipientAccountId":"949622803460","eventCategory":"Management","sessionCredentialFromConsole":"true"}
候補がいくつかあるが、「最初のEC2セット」の話なので、キーペアの1回目と2回目のタイムレンジで探す。
Task 9
Can we confirm the IP addresses used by the TA to abuse the leaked credentials? (Ascending Order)
TA が漏洩した資格情報を悪用するために使用した IP アドレスを確認できますか? (昇順)
ざっくり95.181.232.0/24のレンジが使われていそうだったのでそれを適当に抜き出してくると正答だった。95.181.232.4,95.181.232.8,95.181.232.9,95.181.232.28
Task 10
In addition to the CloudTrail data and S3 access we have provided artefacts from the endpoint reported by AWS. What is the name of the malicious application installed on the EC2 instance?
CloudTrail データと S3 アクセスに加えて、AWS によって報告されたエンドポイントからのアーティファクトも提供しました。EC2 インスタンスにインストールされた悪意のあるアプリケーションの名前は何ですか?
提供されたアーティファクトとは恐らくunusual-directory.zipというファイルのこと。解凍して中を眺めてキーワードでググってみると、PoshC2というものだった。
Task 11
Please can you provide the hostname and username details of any victims of the C2 server?
C2 サーバーの被害者のホスト名とユーザー名の詳細を提供していただけますか?
nubilum_1_int/poshc2/money/poshc2_server.log
を眺めると要求されている情報が書いてある。DESKTOP-R4KM0GJ\Marcus Athony