AWS - CloudTrail Enum
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
CloudTrail
AWS CloudTrail inakusanya na kufuatilia shughuli ndani ya mazingira yako ya AWS. Inakamata logi za matukio kwa kina, ikijumuisha 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 sheria, na ufuatiliaji wa mabadiliko ya rasilimali. CloudTrail ni muhimu kwa kuelewa tabia ya watumiaji na rasilimali, kuboresha hali ya usalama, na kuhakikisha kufuata sheria.
Kila tukio lililorekodiwa lina:
Jina la API iliyopigiwa:
eventName
Huduma iliyopigiwa:
eventSource
Wakati:
eventTime
Anwani ya IP:
SourceIPAddress
Njia ya wakala:
userAgent
. Mifano:Signing.amazonaws.com - Kutoka AWS Management Console
console.amazonaws.com - Mtumiaji mkuu wa akaunti
lambda.amazonaws.com - AWS Lambda
Vigezo vya ombi:
requestParameters
Vipengele vya majibu:
responseElements
Matukio yanaandikwa kwenye faili mpya ya logi takriban kila dakika 5 katika faili ya JSON, yanashikiliwa na CloudTrail na hatimaye, faili za logi zinatolewa kwa S3 takriban dakika 15 baadae. Logi za CloudTrail zinaweza kujumlishwa kwenye akaunti na kwenye maeneo mbalimbali. CloudTrail inaruhusu kutumia uadilifu wa faili za logi ili kuweza kuthibitisha kuwa faili zako za logi hazijabadilika tangu CloudTrail ilipokuletea. Inaunda hash ya SHA-256 ya logi ndani ya faili ya digest. Hash ya sha-256 ya logi mpya inaundwa kila saa. Wakati wa kuunda Trail, wachaguzi wa matukio watakuruhusu kuonyesha Trail kurekodi: Matukio ya usimamizi, data au maarifa.
Logi zinaokolewa kwenye ndoo ya S3. Kwa default, Usimbaji wa Upande wa Seva (SSE-S3) hutumika hivyo AWS itafungua maudhui kwa watu walio na ufikiaji, lakini kwa usalama wa ziada unaweza kutumia SSE na KMS na funguo zako mwenyewe.
Logi zinawekwa kwenye ndoo ya S3 yenye muundo huu wa jina:
BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD
Jina la Ndoo likiwa:
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 logi itakuwa na jina linalofuata muundo huu: AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz
Muundo wa Jina la Faili la Logi
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3270244124-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FNMQzPwpgCFpke97H2tTI%252Fuploads%252Fgit-blob-ae13f4c6840f3ccc43237b9a83c41f5299135b7b%252Fimage%2520%28122%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=9d9e1f2f&sv=1)
Zaidi ya hayo, faili za digest (kuangalia uadilifu wa faili) zitakuwa ndani ya ndoo hiyo hiyo katika:
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3270244124-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FNMQzPwpgCFpke97H2tTI%252Fuploads%252Fgit-blob-e76e758042eed8f8ffa200fb12dfc7c778ff8624%252Fimage%2520%28195%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=82116ba3&sv=1)
Jumlisha Logi kutoka Akaunti Nyingi
Unda Trial katika akaunti ya AWS ambapo unataka faili za logi ziwasilishwe
Tumia ruhusa kwa ndoo ya S3 ya marudio kuruhusu 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 ndoo iliyoundwa katika hatua ya 1
Hata hivyo, hata kama unaweza kuhifadhi logi zote kwenye ndoo moja ya S3, huwezi kujumuisha logi za CloudTrail kutoka akaunti nyingi kwenye CloudWatch Logs inayomilikiwa na akaunti moja ya AWS.
Kumbuka kuwa akaunti inaweza kuwa na Trails tofauti kutoka CloudTrail zilizowezeshwa kuhifadhi logi sawa (au tofauti) kwenye ndoo tofauti.
Cloudtrail kutoka akaunti zote za org kwenye 1
Wakati wa kuunda CloudTrail, inawezekana kuonyesha kuamsha cloudtrail kwa akaunti zote katika org na kupata logi kwenye ndoo moja tu:
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3270244124-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FNMQzPwpgCFpke97H2tTI%252Fuploads%252Fgit-blob-9920b8e8af46d9f383946cd2f0d06af88312c1f9%252Fimage%2520%28200%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=6dbd99ad&sv=1)
Kwa njia hii unaweza kwa urahisi kusanidi CloudTrail katika maeneo yote ya akaunti zote na kujumlisha logi katika akaunti 1 (ambayo unapaswa kuilinda).
Ukaguzi wa Faili za Logi
Unaweza kuangalia kuwa logi hazijabadilishwa kwa kuendesha
Logs to CloudWatch
CloudTrail inaweza kutuma moja kwa moja kumbukumbu kwa CloudWatch ili uweze kuweka tahadhari zinazokuonya wakati shughuli za kutiliwa shaka zinafanywa. Kumbuka kwamba ili kuruhusu CloudTrail kutuma kumbukumbu kwa CloudWatch, jukumu linahitaji kuundwa ambalo linaruhusu hatua hiyo. Ikiwezekana, inashauriwa kutumia jukumu la chaguo-msingi la AWS kufanya vitendo hivi. Jukumu hili litaruhusu CloudTrail kufanya:
CreateLogStream: Hii inaruhusu kuunda mkondo wa kumbukumbu wa CloudWatch Logs
PutLogEvents: Kuwasilisha kumbukumbu za CloudTrail kwa mkondo wa kumbukumbu wa CloudWatch Logs
Event History
CloudTrail Event History inakuruhusu kuchunguza kwenye jedwali kumbukumbu ambazo zimeandikwa:
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3270244124-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FNMQzPwpgCFpke97H2tTI%252Fuploads%252Fgit-blob-677ac1e3a5432723acaf79d06e8a06310b363266%252Fimage%2520%2889%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=f0d02164&sv=1)
Insights
CloudTrail Insights inachanganua moja kwa moja matukio ya usimamizi wa kuandika kutoka kwa njia za CloudTrail na inakutahadharisha 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 kupata na kujibu shughuli zisizo za kawaida za API kuwa rahisi kuliko hapo awali.
Mawazo haya yanahifadhiwa kwenye ndoo ile ile kama kumbukumbu za CloudTrail katika: BucketName/AWSLogs/AccountID/CloudTrail-Insight
Security
Uadilifu wa Faili la Kumbukumbu la CloudTrail |
|
Zuia ufikiaji usioidhinishwa |
|
Zuia faili za kumbukumbu kufutwa |
|
Access Advisor
AWS Access Advisor inategemea kumbukumbu za siku 400 zilizopita za AWS CloudTrail ili kukusanya mawazo yake. CloudTrail inakamata historia ya miito ya API ya AWS na matukio yanayohusiana yaliyofanywa katika akaunti ya AWS. Access Advisor hutumia data hii kuonyesha wakati huduma zilipofikiwa mara ya mwisho. Kwa kuchanganua kumbukumbu za CloudTrail, Access Advisor inaweza kubaini ni huduma gani za AWS mtumiaji wa IAM au jukumu limefikia na wakati ufikiaji huo ulitokea. Hii inasaidia wasimamizi wa AWS kufanya maamuzi sahihi kuhusu kuboresha ruhusa, kwani wanaweza kutambua huduma ambazo hazijafikiwa kwa muda mrefu na kupunguza ruhusa pana sana kulingana na mifumo halisi ya matumizi.
Kwa hivyo, Access Advisor inaarifu kuhusu ruhusa zisizo za lazima zinazotolewa kwa watumiaji ili msimamizi aweze kuziondoa
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3270244124-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FNMQzPwpgCFpke97H2tTI%252Fuploads%252Fgit-blob-2c1380cee840935e857218d8b987b82cf81538e9%252Fimage%2520%2878%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=a28c6ace&sv=1)
Actions
Enumeration
CSV Injection
Inawezekana kufanya sindano ya CVS ndani ya CloudTrail ambayo itatekeleza msimbo wa kiholela ikiwa kumbukumbu zitasafirishwa kwa CSV na kufunguliwa na Excel. Msimbo ufuatao utazalisha ingizo la kumbukumbu na jina baya la Trail linalo na mzigo:
Kwa maelezo zaidi kuhusu CSV Injections angalia ukurasa:
Kwa maelezo zaidi kuhusu mbinu hii maalum angalia https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/
Kupita Ulinzi
HoneyTokens kupita
Honeyokens huundwa ili kugundua uhamishaji wa taarifa nyeti. Katika kesi ya AWS, ni funguo za AWS ambazo matumizi yake yanafuatiliwa, ikiwa kitu kitasababisha hatua na ufunguo huo, basi mtu lazima ameiba ufunguo huo.
Hata hivyo, Honeytokens kama zile zinazoundwa na Canarytokens, SpaceCrab, SpaceSiren zinatumia jina la akaunti linalotambulika au kutumia ID ya akaunti ya AWS sawa kwa wateja wao wote. Kwa hiyo, ikiwa unaweza kupata jina la akaunti na/au ID ya akaunti bila kufanya Cloudtrail kuunda log yoyote, unaweza kujua kama ufunguo ni honeytoken au la.
Pacu ina sheria kadhaa za kugundua kama ufunguo ni wa Canarytokens, SpaceCrab, SpaceSiren:
Ikiwa
canarytokens.org
inaonekana kwenye jina la jukumu au ID ya akaunti534261010715
inaonekana kwenye ujumbe wa kosa.Kuwajaribu hivi karibuni, wanatumia akaunti
717712589309
na bado ina stringcanarytokens.com
kwenye jina.Ikiwa
SpaceCrab
inaonekana kwenye jina la jukumu kwenye ujumbe wa kosaSpaceSiren hutumia uuids kuzalisha 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 limezalishwa kwa nasibu, kuna uwezekano mkubwa kuwa ni HoneyToken.
Pata ID ya akaunti kutoka kwa Key ID
Unaweza kupata ID ya Akaunti kutoka kwa iliyofichwa ndani ya access key kama ilivyoelezwa hapa na angalia ID ya akaunti na orodha yako ya Honeytokens AWS accounts:
Angalia maelezo zaidi katika utafiti wa awali.
Usitengeneze logi
Mbinu bora zaidi kwa hili ni rahisi sana. Tumia tu ufunguo ulioupata kufikia huduma fulani ndani ya akaunti yako mwenyewe ya mshambulizi. Hii itafanya CloudTrail itengeneze logi ndani ya akaunti YAKO MWENYEWE ya AWS na siyo ndani ya akaunti ya mwathirika.
Jambo ni kwamba matokeo yataonyesha kosa linaloashiria ID ya akaunti na jina la akaunti hivyo utaweza kuona kama ni Honeytoken.
Huduma za AWS bila logi
Hapo awali kulikuwa na huduma za AWS ambazo hazitumi logi kwa CloudTrail (pata orodha hapa). Baadhi ya huduma hizo zitajibu na kosa linaloashiria ARN ya ufunguo wa jukumu ikiwa mtu asiyeidhinishwa (ufunguo wa honeytoken) atajaribu kuifikia.
Kwa njia hii, mshambulizi anaweza kupata ARN ya ufunguo bila kuchochea logi yoyote. Katika ARN mshambulizi anaweza kuona ID ya akaunti ya AWS na jina, ni rahisi kujua ID za akaunti na majina ya kampuni za HoneyToken, hivyo kwa njia hii mshambulizi anaweza kutambua kama tokeni ni HoneyToken.
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3270244124-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FNMQzPwpgCFpke97H2tTI%252Fuploads%252Fgit-blob-dba03333fb25b4875e23d9a5bb00446cea7c382c%252Fimage%2520%2893%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=5e6eb7dc&sv=1)
Kumbuka kwamba APIs zote za umma zilizogunduliwa kutotengeneza logi za CloudTrail sasa zimefanyiwa marekebisho, hivyo labda unahitaji kutafuta zako mwenyewe...
Kwa maelezo zaidi angalia utafiti wa awali.
Kufikia Miundombinu ya Watu Wengine
Huduma fulani za AWS zitazalisha miundombinu fulani kama vile Mifumo ya Hifadhidata au klasta za Kubernetes (EKS). Mtumiaji anayezungumza moja kwa moja na huduma hizo (kama API ya Kubernetes) hatatumia API ya AWS, hivyo CloudTrail haitakuwa na uwezo wa kuona mawasiliano haya.
Kwa hiyo, mtumiaji mwenye ufikiaji wa EKS ambaye amegundua URL ya API ya EKS anaweza kutengeneza tokeni ndani ya nchi na kuzungumza na huduma ya API moja kwa moja bila kugunduliwa na CloudTrail.
Maelezo zaidi katika:
AWS - EKS Post ExploitationKubadilisha Mipangilio ya CloudTrail
Futa trails
Kusimamisha trails
Lemaza multi-region logging
Zima Kuingia kwa Kichagua Matukio
Katika mfano wa kwanza, kiondoa tukio kimoja kinatolewa kama safu ya JSON yenye kitu kimoja. "ReadWriteType": "ReadOnly"
inaonyesha kwamba kiondoa tukio kinapaswa kunasa matukio ya kusoma tu (kwa hivyo CloudTrail insights haitakuwa ikikagua matukio ya kuandika kwa mfano).
Unaweza kubinafsisha kiondoa tukio kulingana na mahitaji yako maalum.
Ufutaji wa magogo kupitia sera ya maisha ya S3
Kubadilisha Usanidi wa Ndoo
Futa ndoo ya S3
Badilisha sera ya ndoo ili kukataa maandishi yoyote kutoka kwa huduma ya CloudTrail
Ongeza sera ya mzunguko wa maisha kwa ndoo ya S3 ili kufuta vitu
Lemaza ufunguo wa kms unaotumika kusimba kumbukumbu za CloudTrail
Ransomware ya Cloudtrail
Ransomware ya S3
Unaweza kuzalisha ufunguo usio na usawa na kufanya CloudTrail isimbe data na ufunguo huo na kufuta ufunguo wa kibinafsi ili maudhui ya CloudTrail yasipatikane tena. Hii kimsingi ni S3-KMS ransomware iliyoelezwa katika:
AWS - S3 Post ExploitationKMS ransomware
Hii ni njia rahisi zaidi ya kufanya shambulio la awali na mahitaji tofauti ya ruhusa:
AWS - KMS Post ExploitationMarejeleo
Jifunze & fanya mazoezi ya Udukuzi wa AWS:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze & fanya mazoezi ya Udukuzi wa GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated