AWS - Nitro Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS Nitro je skup inovativnih tehnologija koje čine osnovnu platformu za AWS EC2 instance. Uveden od strane Amazona da poboljša bezbednost, performanse i pouzdanost, Nitro koristi prilagođene hardverske komponente i lagani hipervizor. Apstrahuje većinu tradicionalne funkcionalnosti virtualizacije na posvećen hardver i softver, minimizirajući površinu napada i poboljšavajući efikasnost resursa. Oslobađanjem funkcija virtualizacije, Nitro omogućava EC2 instancama da pružaju performanse blizu onih na fizičkom hardveru, što je posebno korisno za aplikacije koje zahtevaju mnogo resursa. Pored toga, Nitro Security Chip posebno osigurava bezbednost hardvera i firmvera, dodatno učvršćujući svoju robusnu arhitekturu.
AWS Nitro Enclaves pruža sigurno, izolovano okruženje za obradu unutar Amazon EC2 instanci, posebno dizajnirano za obradu veoma osetljivih podataka. Koristeći AWS Nitro sistem, ove enklave osiguravaju robusnu izolaciju i bezbednost, idealne za rukovanje poverljivim informacijama kao što su PII ili finansijski podaci. Imaju minimalističko okruženje, značajno smanjujući rizik od izlaganja podataka. Pored toga, Nitro Enclaves podržavaju kriptografsku attestaciju, omogućavajući korisnicima da verifikuju da samo autorizovani kod radi, što je ključno za održavanje strogih standarda usklađenosti i zaštite podataka.
Nitro Enclave slike se pokreću iznutra EC2 instanci i ne možete videti iz AWS web konzole da li EC2 instance pokreću slike u Nitro Enclave ili ne.
Pratite sve uputstva iz dokumentacije. Međutim, ovo su najvažnija:
Slike koje možete pokrenuti u Nitro Enclave su zasnovane na docker slikama, tako da možete kreirati svoje Nitro Enclave slike iz docker slika kao što su:
Kao što možete videti, Nitro Enclave slike koriste ekstenziju eif
(Enclave Image File).
Izlaz će izgledati slično:
Prema dokumentaciji, da biste pokrenuli sliku enklave, potrebno je da joj dodelite memoriju od najmanje 4 puta veličine eif
datoteke. Moguće je konfigurisati podrazumevane resurse koje joj dodelju u datoteci.
Uvek zapamtite da treba da rezervišete neke resurse za roditeljsku EC2 instancu takođe!
Nakon što znate resurse koje treba dodeliti slici i čak ste izmenili konfiguracioni fajl, moguće je pokrenuti sliku enklave sa:
Ako kompromitujete EC2 host, moguće je dobiti listu pokrenutih slika enklava sa:
Nije moguće dobiti shell unutar pokrenutog enclave imidža jer je to glavna svrha enclave, međutim, ako koristite parametar --debug-mode
, moguće je dobiti stdout sa:
Ako napadač kompromituje EC2 instancu, po defaultu neće moći da dobije shell unutar njih, ali će moći da terminate them sa:
Jedini način za komunikaciju sa enklavom koja pokreće sliku je korišćenje vsocks.
Virtual Socket (vsock) je porodica soketa u Linuxu posebno dizajnirana za olakšavanje komunikacije između virtuelnih mašina (VMs) i njihovih hipervizora, ili između VMs same. Vsock omogućava efikasnu, dvosmernu komunikaciju bez oslanjanja na mrežni stek hosta. Ovo omogućava VMs da komuniciraju čak i bez mrežnih konfiguracija, koristeći 32-bitni Context ID (CID) i brojeve portova za identifikaciju i upravljanje vezama. Vsock API podržava i stream i datagram tipove soketa, slično TCP i UDP, pružajući svestran alat za aplikacije na korisničkom nivou u virtuelnim okruženjima.
Stoga, vsock adresa izgleda ovako: <CID>:<Port>
Da biste pronašli CIDs slika koje pokreće enklava, možete jednostavno izvršiti sledeću komandu i dobiti EnclaveCID
:
Napomena: sa hosta ne postoji način da se sazna da li CID izlaže neki port! Osim korišćenjem nekog vsock port skenera kao https://github.com/carlospolop/Vsock-scanner.
Ovde su neki primeri: