AWS - CloudTrail Enum
Last updated
Last updated
Learn & practice AWS Hacking: Learn & practice GCP Hacking:
AWS CloudTrail inaandika na kufuatilia shughuli ndani ya mazingira yako ya AWS. Inakamata kumbukumbu za matukio za kina, ikiwa ni pamoja na nani alifanya nini, lini, na kutoka wapi, kwa mwingiliano wote na rasilimali za AWS. Hii inatoa njia ya ukaguzi wa mabadiliko na vitendo, kusaidia katika uchambuzi wa usalama, ukaguzi wa kufuata, na kufuatilia mabadiliko ya rasilimali. CloudTrail ni muhimu kwa kuelewa tabia ya mtumiaji na rasilimali, kuboresha hali za usalama, na kuhakikisha kufuata kanuni.
Kila tukio lililosajiliwa lina:
Jina la API iliyotumika: eventName
Huduma iliyotumika: eventSource
Wakati: eventTime
Anuani ya IP: SourceIPAddress
Njia ya wakala: userAgent
. Mifano:
Signing.amazonaws.com - Kutoka AWS Management Console
console.amazonaws.com - Mtumiaji wa root wa akaunti
lambda.amazonaws.com - AWS Lambda
Parameta za ombi: requestParameters
Vipengele vya majibu: responseElements
Matukio yanaandikwa kwenye faili mpya ya kumbukumbu takriban kila dakika 5 katika faili la JSON, yanashikiliwa na CloudTrail na hatimaye, faili za kumbukumbu zinasambazwa kwa S3 takriban dakika 15 baada. Kumbukumbu za CloudTrail zinaweza kuunganishwa kati ya akaunti na kati ya mikoa. CloudTrail inaruhusu kutumia uaminifu wa faili za kumbukumbu ili uweze kuthibitisha kwamba faili zako za kumbukumbu hazijabadilika tangu CloudTrail ilipokuletea. Inaunda hash ya SHA-256 ya kumbukumbu ndani ya faili ya digest. Hash ya sha-256 ya kumbukumbu mpya inaundwa kila saa. Unapounda Trail, wachaguzi wa matukio watakuruhusu kuashiria trail ya kuandika: Usimamizi, data au matukio ya maarifa.
Kumbukumbu zinaokolewa katika bakuli la S3. Kwa kawaida, Usimbaji wa Kando wa Server unatumika (SSE-S3) hivyo AWS itakifungua maudhui kwa watu walio na ufikiaji, lakini kwa usalama wa ziada unaweza kutumia SSE na KMS na funguo zako mwenyewe.
Kumbukumbu zinawekwa katika bakuli la S3 lenye muundo huu wa jina:
BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD
Jina la Bakuli: aws-cloudtrail-logs-<accountid>-<random>
Mfano: aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/
Ndani ya kila folda, kila kumbukumbu itakuwa na jina linalofuata muundo huu: AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz
Mkataba wa Kutoa Jina la Faili za Kumbukumbu
Zaidi ya hayo, faili za digest (kuangalia uaminifu wa faili) zitakuwa ndani ya bakuli moja katika:
Unda Trial katika akaunti ya AWS ambapo unataka faili za kumbukumbu zipelekwe
Weka ruhusa kwa bakuli la S3 la marudio linaloruhusu ufikiaji wa akaunti tofauti kwa CloudTrail na ruhusu kila akaunti ya AWS inayohitaji ufikiaji
Unda Trail mpya katika akaunti nyingine za AWS na chagua kutumia bakuli iliyoundwa katika hatua ya 1
Hata hivyo, hata kama unaweza kuhifadhi kumbukumbu zote katika bakuli moja ya S3, huwezi kuunganisha kumbukumbu za CloudTrail kutoka akaunti nyingi katika Kumbukumbu za CloudWatch zinazomilikiwa na akaunti moja ya AWS.
Kumbuka kwamba akaunti inaweza kuwa na Trails tofauti kutoka CloudTrail zilizowekwa zikihifadhi kumbukumbu sawa (au tofauti) katika bakuli tofauti.
Unapounda CloudTrail, inawezekana kuashiria kuanzisha cloudtrail kwa akaunti zote katika org na kupata kumbukumbu katika bakuli 1 tu:
Kwa njia hii unaweza kwa urahisi kuunda CloudTrail katika mikoa yote ya akaunti zote na kuunganisha kumbukumbu katika akaunti 1 (ambayo unapaswa kuilinda).
Unaweza kuangalia kwamba kumbukumbu hazijabadilishwa kwa kukimbia
CloudTrail inaweza kutuma logi kwa CloudWatch kiotomatiki ili uweze kuweka arifa zinazokujulisha unapofanya shughuli za kutatanisha. Kumbuka kwamba ili kuruhusu CloudTrail kutuma logi kwa CloudWatch, jukumu linahitaji kuundwa ambalo linaruhusu kitendo hicho. Ikiwezekana, inapendekezwa kutumia jukumu la AWS la kawaida kufanya vitendo hivi. Jukumu hili litaruhusu CloudTrail:
CreateLogStream: Hii inaruhusu kuunda mtiririko wa logi za CloudWatch
PutLogEvents: Toa logi za CloudTrail kwa mtiririko wa logi za CloudWatch
Historia ya Matukio ya CloudTrail inakuruhusu kukagua katika jedwali logi ambazo zimeandikwa:
CloudTrail Insights kiotomatiki inafanya uchambuzi wa matukio ya usimamizi wa kuandika kutoka kwa CloudTrail trails na inakujulisha kuhusu shughuli zisizo za kawaida. Kwa mfano, ikiwa kuna ongezeko la matukio ya TerminateInstance
ambayo yanatofautiana na viwango vilivyowekwa, utaona kama tukio la Insight. Matukio haya yanafanya kugundua na kujibu shughuli zisizo za kawaida za API kuwa rahisi kuliko hapo awali.
Insights zinahifadhiwa katika ndoo ile ile kama logi za CloudTrail katika: BucketName/AWSLogs/AccountID/CloudTrail-Insight
AWS Access Advisor inategemea siku 400 za mwisho za logi za AWS CloudTrail ili kukusanya maarifa yake. CloudTrail inakamata historia ya simu za API za AWS na matukio yanayohusiana yaliyofanywa katika akaunti ya AWS. Access Advisor inatumia data hii ku onyesha wakati huduma zilipofikiwa kwa mara ya mwisho. Kwa kuchambua logi za CloudTrail, Access Advisor inaweza kubaini ni huduma zipi za AWS ambazo mtumiaji wa IAM au jukumu limefikiwa na wakati ufikiaji huo ulifanyika. Hii inasaidia wasimamizi wa AWS kufanya maamuzi sahihi kuhusu kuboresha ruhusa, kwani wanaweza kubaini huduma ambazo hazijafikiwa kwa muda mrefu na kwa hivyo kupunguza ruhusa zisizo na mipaka kulingana na mifumo halisi ya matumizi.
Kwa hivyo, Access Advisor inatoa taarifa kuhusu ruhusa zisizo za lazima zinazotolewa kwa watumiaji ili admin aweze kuziondoa
Inawezekana kufanya CVS injection ndani ya CloudTrail ambayo itatekeleza msimbo wowote ikiwa kumbukumbu zitaundwa katika CSV na kufunguliwa na Excel. Msimbo ufuatao utaunda kiingilio cha kumbukumbu chenye jina mbaya la Trail kinachojumuisha payload:
Kwa maelezo zaidi kuhusu CSV Injections angalia ukurasa:
Honeytokens zinaundwa ili kubaini uhamishaji wa taarifa nyeti. Katika kesi ya AWS, ni funguo za AWS ambazo matumizi yake yanakaguliwa, ikiwa kitu kinachochea kitendo na funguo hiyo, basi mtu lazima awe ameiba funguo hiyo.
Ikiwa canarytokens.org
inaonekana katika jina la jukumu au ID ya akaunti 534261010715
inaonekana katika ujumbe wa kosa.
Wakati wa kujaribu hivi karibuni, wanatumia akaunti 717712589309
na bado ina canarytokens.com
katika jina.
Ikiwa SpaceCrab
inaonekana katika jina la jukumu katika ujumbe wa kosa
SpaceSiren inatumia uuids kuunda majina ya watumiaji: [a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}
Ikiwa jina linaonekana kama lililotengenezwa kwa bahati, kuna uwezekano mkubwa kwamba ni HoneyToken.
Mbinu bora zaidi kwa hili ni rahisi. Tumia tu funguo uliyopata kuingia kwenye huduma ndani ya akaunti yako ya washambuliaji. Hii itafanya CloudTrail kuunda log ndani ya AKAUNTI YAKO YA AWS na si ndani ya wahanga.
Jambo ni kwamba matokeo yataonyesha kosa linaloashiria ID ya akaunti na jina la akaunti hivyo utaweza kuona kama ni Honeytoken.
Kwa njia hii, mshambuliaji anaweza kupata ARN ya funguo bila kuanzisha log yoyote. Katika ARN mshambuliaji anaweza kuona ID ya akaunti ya AWS na jina, ni rahisi kujua ID na majina ya akaunti za kampuni za HoneyToken, hivyo kwa njia hii mshambuliaji anaweza kubaini kama token ni HoneyToken.
Kumbuka kwamba APIs zote za umma zilizogundulika kutokuwa na log za CloudTrail sasa zimerekebishwa, hivyo labda unahitaji kutafuta zako mwenyewe...
Huduma fulani za AWS zitaunda miundombinu fulani kama vile Mikondo au makundi ya Kubernetes (EKS). Mtumiaji akizungumza moja kwa moja na huduma hizo (kama API ya Kubernetes) hataitumia API ya AWS, hivyo CloudTrail haitakuwa na uwezo wa kuona mawasiliano haya.
Hivyo, mtumiaji mwenye ufikiaji wa EKS ambaye amegundua URL ya API ya EKS anaweza kuunda token kwa ndani na kuzungumza na huduma ya API moja kwa moja bila kugunduliwa na Cloudtrail.
Maelezo zaidi katika:
Katika mfano wa kwanza, mteule wa tukio mmoja unapatikana kama array ya JSON yenye kitu kimoja. "ReadWriteType": "ReadOnly"
inaonyesha kwamba mteule wa tukio unapaswa kunasa matukio ya kusoma tu (hivyo maarifa ya CloudTrail hayataangalia matukio ya kuandika kwa mfano).
Unaweza kubinafsisha mteule wa tukio kulingana na mahitaji yako maalum.
Futa bucket ya S3
Badilisha sera ya bucket kukataa maandiko yoyote kutoka kwa huduma ya CloudTrail
Ongeza sera ya mzunguko kwa bucket ya S3 kufuta vitu
Zima funguo ya kms inayotumika kuandika kumbukumbu za CloudTrail
Unaweza kuunda funguo isiyo ya kawaida na kufanya CloudTrail kuandika data kwa kutumia funguo hiyo na kufuta funguo ya faragha ili maudhui ya CloudTrail hayawezi kurejeshwa. Hii ni kimsingi S3-KMS ransomware iliyoelezwa katika:
KMS ransomware
Hii ni njia rahisi zaidi ya kutekeleza shambulio la awali na mahitaji tofauti ya ruhusa:
Kwa maelezo zaidi kuhusu mbinu hii maalum angalia
Hata hivyo, Honeytokens kama zile zinazoundwa na , , zinatumia jina la akaunti linalotambulika au kutumia ID ya akaunti ya AWS sawa kwa wateja wao wote. Hivyo basi, ikiwa unaweza kupata jina la akaunti na/au ID ya akaunti bila kufanya Cloudtrail kuunda logi yoyote, unaweza kujua ikiwa funguo ni honeytoken au la.
ina sheria kadhaa za kubaini ikiwa funguo inamhusu , , :
Unaweza kupata ID ya Akaunti kutoka kwa encoded ndani ya funguo ya ufikiaji kama na kuangalia ID ya akaunti na orodha yako ya Honeytokens AWS:
Check more information in the .
Katika siku za nyuma kulikuwa na baadhi ya huduma za AWS ambazo hazitumi logs kwa CloudTrail (pata ). Baadhi ya huduma hizo zitajibu kwa kosa lililo na ARN ya funguo ikiwa mtu asiyeidhinishwa (funguo ya honeytoken) atajaribu kuingia.
Kwa maelezo zaidi angalia .
Jifunze & fanya mazoezi ya AWS Hacking: Jifunze & fanya mazoezi ya GCP Hacking:
Angalia !
Jiunge na 💬 au au fuata sisi kwenye Twitter 🐦 .
Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa na repos za github.