AWS - API Gateway Unauthenticated Enum

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

API Invoke omseil

Volgens die gesprek Aanvalsvectors vir API's wat AWS API Gateway Lambda Authorizers gebruik - Alexandre & Leonardo, kan Lambda Authorizers gekonfigureer word met behulp van IAM-sintaks om toestemmings te gee om API-eindpunte aan te roep. Dit kom van die dokumentasie:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Permission",
"Action": [
"execute-api:Execution-operation"
],
"Resource": [
"arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path"
]
}
]
}

Die probleem met hierdie manier om toestemmings te gee om eindpunte aan te roep is dat die "*" impliseer "enigiets" en daar is geen meer regex-syntax ondersteun.

Sommige voorbeelde:

  • 'n Reël soos arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/* om elke gebruiker toegang te gee tot /dashboard/user/{gebruikersnaam} sal hulle toegang gee tot ander roetes soos /admin/dashboard/createAdmin byvoorbeeld.

Let daarop dat "*" nie ophou om uit te brei met slaggate nie, daarom, as jy "*" gebruik in api-id byvoorbeeld, kan dit ook "enige stadium" of "enige metode" aandui solank die finale regex nog steeds geldig is. So arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/* Kan 'n posversoek valideer na toetsstadium na die pad /prod/GET/dashboard/admin byvoorbeeld.

Jy moet altyd duidelik hê wat jy wil toelaat om toegang te verkry en dan nagaan of ander scenario's moontlik is met die toestemmings wat verleen is.

Vir meer inligting, behalwe die dokumentasie, kan jy kode vind om outoriseerders te implementeer in hierdie amptelike aws github.

IAM-beleidsinspuiting

In dieselfde gesprek word blootgestel dat as die kode gebruikersinsette gebruik om die IAM-beleide te genereer, wildcards (en ander soos "." of spesifieke strings) daarin ingesluit kan word met die doel om beperkings te omseil.

Openbare URL-sjabloon

https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}

Kry Rekening ID van openbare API Gateway URL

Net soos met S3-emmers, Data Exchange en Lambda URL-poorte, is dit moontlik om die rekening ID van 'n rekening te vind deur die aws:ResourceAccount Beleidsvoorwaarde Sleutel te misbruik vanaf 'n openbare API Gateway URL. Dit word gedoen deur die rekening ID een karakter op 'n slag te vind deur wildcards in die aws:ResourceAccount-gedeelte van die beleid te misbruik. Hierdie tegniek maak dit ook moontlik om waardes van etikette te kry as jy die etiketsleutel ken (daar is 'n paar standaard interessante).

Jy kan meer inligting vind in die oorspronklike navorsing en die instrument conditional-love om hierdie uitbuiting te outomatiseer.

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated