AWS - GuardDuty Enum
Reading time: 10 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
GuardDuty
Prema dokumentaciji: GuardDuty kombinuje mašinsko učenje, detekciju anomalija, praćenje mreže i otkrivanje zlonamernih datoteka, koristeći kako AWS, tako i vodeće izvore trećih strana kako bi pomogao u zaštiti radnih opterećenja i podataka na AWS-u. GuardDuty je sposoban da analizira desetine milijardi događaja iz više AWS izvora podataka, kao što su AWS CloudTrail dnevnici događaja, Amazon Virtual Private Cloud (VPC) Flow Logs, Amazon Elastic Kubernetes Service (EKS) revizijski i sistemski dnevnici, i DNS upiti.
Amazon GuardDuty identifikuje neobičnu aktivnost unutar vaših naloga, analizira bezbednosnu relevantnost aktivnosti i daje kontekst u kojem je aktivnost pokrenuta. Ovo omogućava odgovaraču da odredi da li treba da potroši vreme na dalju istragu.
Upozorenja se pojavljuju u GuardDuty konzoli (90 dana) i CloudWatch događajima.
warning
Kada korisnik onemogući GuardDuty, prestaćete da pratite vaše AWS okruženje i neće generisati nove nalaze, a postojeći nalazi će biti izgubljeni.
Ako ga samo zaustavite, postojeći nalazi će ostati.
Primer Nalaza
- Reconnaissance: Aktivnost koja sugeriše izviđanje od strane napadača, kao što su neobične API aktivnosti, sumnjivi pokušaji prijave na bazu podataka, intra-VPC skeniranje portova, neobični obrasci neuspešnih zahteva za prijavu, ili neblokirano ispitivanje portova sa poznate loše IP adrese.
- Kompromitovanje instance: Aktivnost koja ukazuje na kompromitovanje instance, kao što su rudarenje kriptovaluta, backdoor komanda i kontrola (C&C), zlonameran softver koji koristi algoritme generisanja domena (DGA), aktivnost odbijanja usluge, neobično visok obim mrežnog saobraćaja, neobični mrežni protokoli, komunikacija instance sa poznatom zlonamernom IP adresom, privremene Amazon EC2 akreditivi korišćeni od strane spoljne IP adrese, i eksfiltracija podataka korišćenjem DNS-a.
- Kompromitovanje naloga: Uobičajeni obrasci koji ukazuju na kompromitovanje naloga uključuju API pozive iz neobične geolokacije ili anonimnog proksija, pokušaje da se onemogući AWS CloudTrail logovanje, promene koje oslabljuju politiku lozinki naloga, neobične instance ili lansiranja infrastrukture, implementacije infrastrukture u neobičnoj regiji, krađu akreditiva, sumnjivu aktivnost prijave na bazu podataka, i API pozive sa poznatih zlonamernih IP adresa.
- Kompromitovanje bucket-a: Aktivnost koja ukazuje na kompromitovanje bucket-a, kao što su sumnjivi obrasci pristupa podacima koji ukazuju na zloupotrebu akreditiva, neobične Amazon S3 API aktivnosti sa udaljenog hosta, neovlašćen pristup S3-u sa poznatih zlonamernih IP adresa, i API pozivi za preuzimanje podataka iz S3 bucket-a od korisnika bez prethodne istorije pristupa bucket-u ili pokrenutih iz neobične lokacije. Amazon GuardDuty kontinuirano prati i analizira AWS CloudTrail S3 događaje (npr. GetObject, ListObjects, DeleteObject) kako bi otkrio sumnjivu aktivnost širom svih vaših Amazon S3 bucket-a.
Informacije o nalazima
Sažetak nalaza:
- Tip nalaza
- Ozbiljnost: 7-8.9 Visoka, 4-6.9 Srednja, 01-3.9 Niska
- Regija
- ID naloga
- ID resursa
- Vreme detekcije
- Koja je lista pretnji korišćena
Telo sadrži ove informacije:
- Pogođeni resurs
- Akcija
- Akter: IP adresa, port i domen
- Dodatne informacije
Svi Nalazi
Pristupite listi svih GuardDuty nalaza na: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Više Naloga
Po Pozivu
Možete pozvati druge naloge u različit AWS GuardDuty nalog tako da svaki nalog bude praćen iz istog GuardDuty. Glavni nalog mora pozvati članove naloga, a zatim predstavnik članskog naloga mora prihvatiti poziv.
Putem Organizacije
Možete odrediti bilo koji nalog unutar organizacije da bude delegirani administrator GuardDuty. Samo nalog za upravljanje organizacijom može odrediti delegiranog administratora.
Nalog koji se odredi kao delegirani administrator postaje nalog administratora GuardDuty, automatski ima omogućenu GuardDuty u određenoj AWS regiji, i takođe ima dozvolu da omogući i upravlja GuardDuty za sve naloge u organizaciji unutar te regije. Ostali nalozi u organizaciji mogu se videti i dodati kao članovi GuardDuty povezani sa ovim delegiranim administratorskim nalogom.
Enumeracija
# Get Org config
aws guardduty list-organization-admin-accounts #Get Delegated Administrator
aws guardduty describe-organization-configuration --detector-id <id>
# Check external invitations
aws guardduty list-invitations
aws guardduty get-invitations-count
# Detector Information
aws guardduty list-detectors # 1 detector per account with GuardDuty
aws guardduty get-detector --detector-id <id> # Get detector info
aws guardduty get-master-account --detector-id <id>
# Get filters
aws guardduty list-filters --detector-id <id> # Check filters
aws guardduty get-filter --detector-id <id> --filter-name <name>
# Findings
aws guardduty list-findings --detector-id <id> # List findings
aws guardduty get-findings --detector-id <id> --finding-ids <id> # Get details about the finding
aws guardduty get-findings-statistics --detector-id <id> --finding-statistic-types <types>
# Get trusted IP addresses
aws guardduty list-ip-sets --detector-id <id>
aws guardduty get-ip-set --detector-id <id>
# Member accounts of the current AWS GuardDuty master account
aws guardduty list-members --detector-id <id>
aws guardduty get-members --detector-id <id> --account-ids <id>
aws guardduty get-member-detectors --detector-id <id> --account-ids <id>
# Continuously export its findings to an Amazon S3 bucket
aws guardduty list-publishing-destinations --detector-id <id>
# Intelligence sets that you have uploaded to GuardDuty
aws guardduty list-threat-intel-sets --detector-id <id>
aws guardduty get-threat-intel-set --detector-id <id> --threat-intel-set-id <id>
GuardDuty Bypass
General Guidance
Pokušajte da saznate što je moguće više o ponašanju kredencijala koje ćete koristiti:
- Vremena kada se koriste
- Lokacije
- User Agents / Usluge (Može se koristiti iz awscli, webconsole, lambda...)
- Dozvole koje se redovno koriste
Sa ovom informacijom, rekreirajte što je moguće više istog scenarija za korišćenje pristupa:
- Ako je to korisnik ili uloga kojoj pristupa korisnik, pokušajte da je koristite u istim satima, iz iste geolokacije (čak i istog ISP-a i IP-a ako je moguće)
- Ako je to uloga koju koristi usluga, kreirajte istu uslugu u istoj regiji i koristite je odatle u istim vremenskim intervalima
- Uvek pokušavajte da koristite iste dozvole koje je ovaj princip koristio
- Ako treba da koristite druge dozvole ili zloupotrebite dozvolu (na primer, preuzmite 1.000.000 cloudtrail log fajlova) radite to polako i sa minimalnim brojem interakcija sa AWS-om (awscli ponekad poziva nekoliko read API-ja pre write API-ja)
Breaking GuardDuty
guardduty:UpdateDetector
Sa ovom dozvolom mogli biste da onemogućite GuardDuty kako biste izbegli aktiviranje upozorenja.
aws guardduty update-detector --detector-id <detector-id> --no-enable
aws guardduty update-detector --detector-id <detector-id> --data-sources S3Logs={Enable=false}
guardduty:CreateFilter
Napadači sa ovom dozvolom imaju mogućnost da koriste filtre za automatsko arhiviranje nalaza:
aws guardduty create-filter --detector-id <detector-id> --name <filter-name> --finding-criteria file:///tmp/criteria.json --action ARCHIVE
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)
Napadači sa prethodnim privilegijama mogli bi da modifikuju GuardDuty-ovu Listu pouzdanih IP adresa dodajući svoju IP adresu i izbegavajući generisanje upozorenja.
aws guardduty update-ip-set --detector-id <detector-id> --activate --ip-set-id <ip-set-id> --location https://some-bucket.s3-eu-west-1.amazonaws.com/attacker.csv
guardduty:DeletePublishingDestination
Napadači bi mogli ukloniti odredište kako bi sprečili upozorenje:
aws guardduty delete-publishing-destination --detector-id <detector-id> --destination-id <dest-id>
caution
Brisanje ove destinacije za objavljivanje neće uticati na generisanje ili vidljivost nalaza unutar GuardDuty konzole. GuardDuty će nastaviti da analizira događaje u vašem AWS okruženju, identifikuje sumnjivo ili neočekivano ponašanje i generiše nalaze.
Primeri zaobilaženja specifičnih nalaza
Imajte na umu da postoji desetine GuardDuty nalaza, međutim, kao Red Teamer, nećete biti pogođeni svim njima, a što je bolje, imate potpunu dokumentaciju o svakom od njih u https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html pa pogledajte pre nego što preduzmete bilo kakvu akciju da ne biste bili uhvaćeni.
Evo nekoliko primera specifičnih zaobilaženja GuardDuty nalaza:
PenTest:IAMUser/KaliLinux
GuardDuty detektuje AWS API zahteve iz uobičajenih alata za penetraciono testiranje i aktivira PenTest Finding.
Detektuje se po nazivu korisničkog agenta koji se prosleđuje u API zahtevu.
Stoga, modifikovanjem korisničkog agenta moguće je sprečiti GuardDuty da detektuje napad.
Da biste to sprečili, možete pretražiti skriptu session.py
u botocore
paketu i modifikovati korisnički agent, ili postaviti Burp Suite kao AWS CLI proxy i promeniti korisnički agent sa MitM ili jednostavno koristiti OS kao što su Ubuntu, Mac ili Windows, što će sprečiti aktiviranje ovog upozorenja.
UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
Ekstrakcija EC2 kredencijala iz metadata servisa i korišćenje njih van AWS okruženja aktivira UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
upozorenje. S druge strane, korišćenje ovih kredencijala sa vaše EC2 instance aktivira UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
upozorenje. Ipak, korišćenje kredencijala na drugoj kompromitovanoj EC2 instanci unutar istog naloga prolazi neprimećeno, ne izazivajući nikakvo upozorenje.
tip
Stoga, koristite exfiltrirane kredencijale iznutra mašine gde ste ih pronašli da ne biste aktivirali ovo upozorenje.
Reference
- https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
- https://docs.aws.amazon.com/guardduty/latest/ug/findings_suppression-rule.html
- https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_upload-lists.html
- https://docs.aws.amazon.com/cli/latest/reference/guardduty/delete-publishing-destination.html
- https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-ec2.html#unauthorizedaccess-ec2-torclient
- https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationoutsideaws
- https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationinsideaws
- https://docs.aws.amazon.com/whitepapers/latest/aws-privatelink/what-are-vpc-endpoints.html
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.