AWS - Nitro Enum
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
AWS Nitro, AWS EC2 örnekleri için temel platformu oluşturan yenilikçi teknolojiler setidir. Amazon tarafından güvenliği, performansı ve güvenilirliği artırmak amacıyla tanıtılan Nitro, özel donanım bileşenleri ve hafif bir hipervizör kullanır. Geleneksel sanallaştırma işlevlerinin çoğunu özel donanım ve yazılıma soyutlayarak, saldırı yüzeyini minimize eder ve kaynak verimliliğini artırır. Sanallaştırma işlevlerini devrederek, Nitro'nun EC2 örneklerinin neredeyse bare-metal performansı sunmasına olanak tanır, bu da kaynak yoğun uygulamalar için özellikle faydalıdır. Ayrıca, Nitro Güvenlik Çipi, donanım ve yazılım güvenliğini sağlamak için özel olarak tasarlanmıştır ve sağlam mimarisini daha da güçlendirir.
AWS Nitro Enclaves, Amazon EC2 örnekleri içinde güvenli, izole bir hesaplama ortamı sağlar ve özellikle son derece hassas verilerin işlenmesi için tasarlanmıştır. AWS Nitro Sistemi'nden yararlanarak, bu enclaves güçlü izolasyon ve güvenlik sağlar, PII veya finansal kayıtlar gibi gizli bilgilerin işlenmesi için idealdir. Minimalist bir ortam sunarak, veri ifşası riskini önemli ölçüde azaltır. Ayrıca, Nitro Enclaves, kullanıcıların yalnızca yetkili kodun çalıştığını doğrulamasına olanak tanıyan kriptografik onaylamayı destekler; bu, sıkı uyum ve veri koruma standartlarının korunması için kritik öneme sahiptir.
Nitro Enclave görüntüleri EC2 örnekleri içinden çalıştırılır ve AWS web konsolundan bir EC2 örneğinin Nitro Enclave'de görüntü çalıştırıp çalıştırmadığını göremezsiniz.
Tüm talimatları belgeden takip edin. Ancak, en önemli olanlar şunlardır:
Nitro Enclave'de çalıştırabileceğiniz görüntüler, docker görüntülerine dayanmaktadır, bu nedenle Nitro Enclave görüntülerinizi şu şekilde docker görüntülerinden oluşturabilirsiniz:
Nitro Enclave görüntülerinin eif
(Enclave Image File) uzantısını kullandığını görebilirsiniz.
Çıktı şu şekilde görünecektir:
belgelere göre, bir enclave görüntüsü çalıştırmak için ona eif
dosyasının boyutunun en az 4 katı kadar bellek atamanız gerekir. Dosyada ona verilecek varsayılan kaynakları yapılandırmak mümkündür.
Her zaman ebeveyn EC2 örneği için de bazı kaynakları ayırmanız gerektiğini unutmayın!
Bir görüntüye verilecek kaynakları bildikten ve yapılandırma dosyasını değiştirdikten sonra, bir enclave görüntüsünü çalıştırmak mümkündür:
Eğer bir EC2 sunucusunu ele geçirirseniz, çalışan enclave görüntülerinin bir listesini almak mümkündür:
Çalışan bir enclave görüntüsünde bir shell almak mümkün değildir çünkü enclave'in ana amacı budur, ancak --debug-mode
parametresini kullanırsanız, bunun stdout'sunu almak mümkündür:
Eğer bir saldırgan bir EC2 örneğini ele geçirirse, varsayılan olarak içlerinde bir shell elde edemeyecek, ancak onları sonlandırma yeteneğine sahip olacaktır:
Bir enclave çalışan görüntüsü ile iletişim kurmanın tek yolu vsocks kullanmaktır.
Virtual Socket (vsock), sanal makineler (VM'ler) ile hypervisor'lar arasında veya VM'ler arasında iletişimi kolaylaştırmak için özel olarak tasarlanmış bir soket ailesidir. Vsock, ana bilgisayarın ağ yığınına güvenmeden verimli, iki yönlü iletişim sağlar. Bu, VM'lerin ağ yapılandırmalarına ihtiyaç duymadan iletişim kurmasını mümkün kılar, bağlantıları tanımlamak ve yönetmek için 32 bit Context ID (CID) ve port numaraları kullanır. Vsock API, TCP ve UDP'ye benzer şekilde hem akış hem de datagram soket türlerini destekleyerek sanal ortamlardaki kullanıcı düzeyindeki uygulamalar için çok yönlü bir araç sağlar.
Bu nedenle, bir vsock adresi şu şekilde görünür: <CID>:<Port>
Çalışan görüntülerin CIDs'lerini bulmak için aşağıdaki komutu çalıştırabilir ve EnclaveCID
'yi alabilirsiniz:
Ana bilgisayardan bir CID'nin herhangi bir portu açıp açmadığını bilmenin bir yolu yoktur! Bazı vsock port tarayıcıları gibi https://github.com/carlospolop/Vsock-scanner kullanmadıkça.
Burada birkaç örnek bulabilirsiniz: