16,000ドルの開発ミス

May 08 2022
こんにちは皆さん!私の最後の記事からしばらく経ちました。ご存知のように、昨年私はアプリケーションセキュリティエンジニアとしてBugcrowdチームに加わりました。

こんにちは皆さん!

私の最後の記事からしばらく経ちました。ご存知のように、昨年私はアプリケーションセキュリティエンジニアとしてBugcrowdチームに加わりました。それ以来、Bugcrowdでフルタイムの役割に移行したため、フルタイムのハッキングはかなり後回しになりました。年末に向けて、所有するすべてのアセットが範囲内にあるため、1つのプログラムにのみ焦点を当てることにしました。

したがって、これは、Reconを使用していくつかのAWSキーを見つけた方法、それを活用して役割と権限を見つける方法、およびさまざまなサービスを深く掘り下げて影響を実際に固める方法についての記事になります。

使用したツール:

  1. Burp Suite Pro

3.DataExtractor拡張機能

4.FFUF

5. KiteRunner

6.Assetnoteワードリスト

7. AWSCLI

8.正段

偵察

ご存知のように、優れた脆弱性の話は、確かな偵察から始まります。そこで、Shodanを調べて、有望なものを探すことにしました。したがって、「ssl:” {{Org name}}”」というクエリを実行することで、そのクエリを実行することで、組織に属するスキャンされたすべてのアセットを取得できましたが、アセットが多数あるため、フィルタリングを開始する必要がありました。クエリssl:” {{Org name}}”を使用したように、クエリの前に「-」を付けることで、さまざまなアセットを除外し始めました。

これで、ssl:” {{Org name}}”の結果が得られ、example1.comに属するすべてのアセットの結果を削除したいと思います。クエリは次のようになります。

ssl:” {{組織名}}- Ssl.cert.subject.CN:” example1.com”

また、AkamaiGhostによって提供されたアセットをすべて削除したかったので、-AkamaiGhost†も追加しました。

Ok!今、私は今まで見たことがないいくつかの興味深い資産とIPアドレスを目にします。BurpとFirefoxを開いて、新しいアセットをヒットし始めます。前日にJSminerと呼ばれるBurp拡張機能を発見しました。これは、正規表現とパターンのリストを調べて、重大度として投稿します。

[JSMinerのスクリーンショットを投稿]

また、ユーザーが提供する正規表現のリストに基づいてデータをプルする、Gwendolyn製の別のツールもあります。githubリポジトリへのリンクは次のとおりです。これらの2つの拡張機能はどちらもパッシブスキャンを介して機能しますが、JSMinerには.mapファイルを検索するためのアクティブスキャンモジュールがあります。

これで、すべてのツールが新しいBurpプロジェクトでセットアップされました。まず、GAUとWaybackからJSファイルを抽出し、それらをJsurls.txtというファイルに保存しました。次に、TomNomNomUnfurlツールを使用します。そのファイルを取得し、ホストのリストを抽出して、 Domains.txtという1つのファイルに入れました。次に、URLのすべてのパスを抽出し、Jspaths.txtという別のファイルに保存しました。ご存知のように、ブルートフォース攻撃が近づいていますが、まず、ブルートフォース攻撃についてもう少し詳しく説明したいと思います。そこで、JSurls.txtファイルに再度アクセスして、最初のサブディレクトリ(jsファイルなし)までのURLを抽出し、それをDomains.txtに配置することにしました。ファイル。次に、第2レベルのサブディレクトリと第3レベルのサブディレクトリを含むURLを取得し、それらをDomains.txtファイルに追加しました。そこから、FFUFツールを利用してコンテンツの発見を開始する時が来ました。単純なFFUFワンライナーを実行して、GAU / Waybackから取得したすべてのJavascriptパスを、すべてのサブドメイン/サブディレクトリに対して実行しました。そこから、FFUFプロキシに結果を「200」をBURPに返すように依頼しました。次に、BURPは、 JSMinerおよびDataExtractor拡張機能の利用を含むライブパッシブスキャンを開始します。

数分以内に、開発サブドメインのAWSキーが何度かヒットしました。ここでは、第2レベルのサブディレクトリを追加することが重要だったようです。Javascriptファイルの最終結果はhttps://tre-uat-euw1.redacted.com/assets/Javascript/config/config.js.ここでは、パス「/Javascript/config/config.js」がキーパスでした。AWSアクセスキーとAWSシークレットキーをプルした後。AWSCLIに直接アクセスして、最大の効果を確保する方法を確認します。

搾取

AWS CLIは、すべてのAWSサービスを1つの中央コンソールにまとめるツールであり、1つのツールで複数のAWSサービスを簡単に制御できます。頭字語はAmazonWebServices Command Line Interfaceの略で、その名前が示すように、ユーザーはコマンドラインから操作するためです。このツールを利用することで、見つけたキーを取得し、アクセスできるサービスを調べることができます。だからオフに行きます:

まず、次のワンライナーを使用してプロファイルを作成する必要があります:
aws configure — profile {whatevername}

このプロファイルを作成することにより、Javascriptファイルにあるクレデンシャルを利用してawscliコマンドを呼び出すことができます。プロファイルが作成されたので、これらのキーが実際にどれほど寛容であるかを正確に把握するときが来ました。

次のコマンドを実行しました。

aws —プロファイル{whatevername} sts get-caller-identity

このコマンドは、ユーザーID、アカウントID、およびarn(ユーザー名を含む)を提供します。このコマンドを呼び出すことにより、ユーザー名などの重要な情報を提供して、ピボットし、さらに探索を続けることができます。この情報は本質的に機密情報ですが、これは最大の影響とは見なされません。プログラムの所有者は、特定の脆弱性がどれほど影響を与える可能性があるかを知る必要がある場合があります。これにより、9.0クリティカルと10.0クリティカル(最大支払い)の違いを判断できます。次のAwscliコマンドを使用して、より多くの影響を判断できます。

上記のコマンドは、のようなコマンドに入力されたユーザー名に関連付けられたポリシー情報を提供します。以下に示すように、検索されたユーザー名に関連付けられたポリシー名はAdministratorAccessです。

aws iam list-attached-user-policies —プロファイル{whatevername} —ユーザー名{username}

上記のこのコマンドは、ユーザーが適用されているポリシーに関する重要な情報を提供します。AWS用語でのポリシーは、ロールまたは「グループ」です。これは基本的に、ユーザーがCRUD権限を持つ特定のサービスにアクセスできるようにする権限セットです。上記のスクリーンショットに基づいて、これらのキーには管理者権限があると想定できます。次に、このユーザーがアクセスできるAWSサービスと、このユーザーがサービスへの完全な管理者アクセス権を持っているかどうかを確認する必要があります。

最後に、キーの全範囲を理解するために実行したい最後のコマンドは、次のコマンドを実行することでした。

aws iam get-policy-version —プロファイルが編集されました— policy-arn arn:aws:iam :: aws:policy / AdministratorAccess — version-id v1

これはまさに私が必要としていたものでした!これは私に2つの非常に重要な興味のあるポイントを与えました。お分かりのように、アクションキーとリソースキーの横にはワイルドカードのアスタリスク値があります。これは、AWSキーを使用して任意のアクションを実行でき、すべてのリソースにアクセスできることを示しています。これは正確にはどういう意味ですか?

影響

影響を繰り返すために、私はすべてのアクションを実行する機能を備えた管理者として、すべてのAWSサービスに完全にアクセスできます。つまり、会社に属するものはすべて作成、読み取り、更新、削除できます。

  • 私は彼らのすべてのEC2スナップショットにフルアクセスできました
  • Lambda関数へのフルアクセス
  • すべてのS3バケットへのフルアクセス。

クールな賞金稼ぎが言うように:ブーム!

要点:

  • 時間をかけて会社とその会社のやり方を理解してください。偵察の一部は、データの収集に加えて、パターンを理解しようとしています。すべてのプログラムには、サブドメインに名前を付ける方法、ディレクトリの構造に関係なく、パターンがあります。
  • パターンを特定したら、クリエイティブになり始めます。
  • 影響を徹底してください。より多くの影響を掘り下げることなくこの脆弱性を提出した場合、それは高い報奨金とは見なされなかったであろうと本当に感じました。

© Copyright 2021 - 2023 | hachiwiki.com | All Rights Reserved