AWS Pentesting
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 ortamında pentesting yapmadan önce, AWS'nin nasıl çalıştığı hakkında bilmeniz gereken birkaç temel şey vardır; bu, ne yapmanız gerektiğini, yanlış yapılandırmaları nasıl bulacağınızı ve bunları nasıl istismar edeceğinizi anlamanıza yardımcı olacaktır.
Organizasyon hiyerarşisi, IAM ve diğer temel kavramlar hakkında açıklamalar için:
Saldırı simülasyonu için araçlar:
AWS ortamını denetlemek için bilmeniz gereken çok önemli noktalar: hangi hizmetlerin kullanıldığı, neyin açık olduğu, kimin neye erişimi olduğu ve iç AWS hizmetlerinin dış hizmetlerle nasıl bağlantılı olduğudur.
Red Team bakış açısına göre, bir AWS ortamını tehlikeye atmanın ilk adımı bazı kimlik bilgilerini elde etmektir. Bunu nasıl yapacağınıza dair bazı fikirler:
Github'daki sızıntılar (veya benzeri) - OSINT
Sosyal Mühendislik
Şifre tekrar kullanımı (şifre sızıntıları)
AWS-Hosted Uygulamalardaki Güvenlik Açıkları
Server Side Request Forgery ile metadata uç noktasına erişim
Yerel Dosya Okuma
/home/KULLANICI_ADI/.aws/credentials
C:\Users\KULLANICI_ADI\.aws\credentials
tarafların ihlal edilmesi
İç Çalışan
Cognito kimlik bilgileri
Ya da kimlik doğrulaması yapılmamış bir hizmeti tehlikeye atarak:
Ya da bir gözden geçirme yapıyorsanız, bu rollerle kimlik bilgilerini isteyebilirsiniz:
Kimlik bilgilerini elde etmeyi başardıktan sonra, bu kimlik bilgilerin kime ait olduğunu ve neye erişim sağladıklarını bilmeniz gerekir, bu nedenle bazı temel numaralar yapmanız gerekir:
AWS içindeki bir makinede bir SSRF bulursanız, bu sayfayı ipuçları için kontrol edin:
Bilmeniz gereken ilk şeylerden biri, kim olduğunuzdur (hangi hesapta olduğunuz ve AWS ortamı hakkında diğer bilgiler):
Şirketlerin tokenlerin çalındığını ve kullanıldığını belirlemek için canary tokenlar kullanabileceğini unutmayın. Kullanımdan önce bir tokenın canary token olup olmadığını kontrol etmeniz önerilir. Daha fazla bilgi için bu sayfayı kontrol edin.
Yeterli izinleriniz varsa, AWS hesabındaki her varlığın ayrıcalıklarını kontrol etmek size ne yapabileceğinizi ve diğer kimliklerin ne yapabileceğini anlamanıza yardımcı olacaktır ve ayrıca ayrıcalıkları artırma yollarını keşfetmenizi sağlar.
IAM'yi listelemek için yeterli izniniz yoksa, bunları bruteforce ile çalabilirsiniz. Listeleme ve bruteforce yapma hakkında bilgi için:
Artık kimlik bilgileriniz hakkında bazı bilgilere sahip olduğunuzda (ve eğer bir kırmızı takım üyesiyseniz umarım tespit edilmemişsinizdir). Ortamda hangi hizmetlerin kullanıldığını anlamanın zamanı geldi. Aşağıdaki bölümde bazı yaygın hizmetleri listeleme yollarını kontrol edebilirsiniz.
AWS, şaşırtıcı bir hizmet sayısına sahiptir, aşağıdaki sayfada temel bilgiler, listeleme kılavuzları**,** tespiti önleme, kalıcılık sağlama ve bazıları hakkında diğer sonrası istismar ipuçlarını bulacaksınız:
Tüm çalışmaları manuel olarak yapmanıza gerek olmadığını unutmayın, bu yazıda otomatik araçlar hakkında bir bölüm bulabilirsiniz otomatik araçlar.
Ayrıca, bu aşamada kimlik doğrulaması yapılmamış kullanıcılara daha fazla hizmetin açıldığını keşfetmiş olabilirsiniz, bunları istismar edebilirsiniz:
Farklı kaynaklar üzerindeki en azından kendi izinlerinizi kontrol edebiliyorsanız, daha fazla izin elde edip edemeyeceğinizi kontrol edebilirsiniz. En azından aşağıdaki izinlere odaklanmalısınız:
AWS hizmetlerini listeleme sırasında bazı hizmetlerin İnternete elemanlar açtığını bulmuş olabilirsiniz (VM/Konteyner portları, veritabanları veya kuyruk hizmetleri, anlık görüntüler veya bucketlar...). Pentester/kırmızı takım üyesi olarak, her zaman duyarlı bilgiler / zafiyetler bulup bulamayacağınızı kontrol etmelisiniz, çünkü bunlar size AWS hesabına daha fazla erişim sağlayabilir.
Bu kitapta açık AWS hizmetlerini bulma ve bunları kontrol etme hakkında bilgi bulmalısınız. Açık ağ hizmetlerinde zafiyetler bulma hakkında, belirli hizmeti aramanızı öneririm:
Yönetim hesabı organizasyonda yeni hesaplar oluşturduğunda, yeni hesapta varsayılan olarak OrganizationAccountAccessRole
adı verilen yeni bir rol oluşturulur ve yönetim hesabına yeni hesaba erişim sağlamak için AdministratorAccess politikası verilir.
Bu nedenle, bir çocuk hesaba yönetici olarak erişmek için şunlara ihtiyacınız var:
Yönetim hesabını ele geçirmek ve çocuk hesapların ID'sini ve rolün isimlerini (varsayılan olarak OrganizationAccountAccessRole) bulmak, yönetim hesabının yönetici olarak erişmesine izin verir.
Çocuk hesapları bulmak için AWS konsolundaki organizasyonlar bölümüne gidin veya aws organizations list-accounts
komutunu çalıştırın.
Rollerin adını doğrudan bulamazsınız, bu nedenle tüm özel IAM politikalarını kontrol edin ve daha önce keşfedilen çocuk hesaplar üzerinde sts:AssumeRole
izni veren herhangi birini arayın.
Yönetim hesabındaki bir prensibi çocuk hesaplardaki rol üzerinde sts:AssumeRole
izni ile ele geçirin (yönetim hesabından herhangi birinin taklit etmesine izin veren bir hesap olsa bile, dış bir hesap olduğu için belirli sts:AssumeRole
izinleri gereklidir).
aws-recon: Ruby ile yazılmış çok iş parçacıklı AWS güvenlik odaklı envanter toplama aracı.
cloudlist: Cloudlist, Bulut Sağlayıcılarından Varlıklar (Ana Bilgisayar İsimleri, IP Adresleri) almak için çoklu bulut aracıdır.
cloudmapper: CloudMapper, Amazon Web Services (AWS) ortamlarınızı analiz etmenize yardımcı olur. Artık güvenlik sorunları için denetim de dahil olmak üzere çok daha fazla işlevsellik içermektedir.
cartography: Cartography, Neo4j veritabanası tarafından desteklenen sezgisel bir grafik görünümünde altyapı varlıklarını ve bunlar arasındaki ilişkileri bir araya getiren bir Python aracıdır.
starbase: Starbase, bulut altyapısı, SaaS uygulamaları, güvenlik kontrolleri ve daha fazlası dahil olmak üzere hizmetlerden ve sistemlerden varlıkları ve ilişkileri Neo4j veritabanıyla desteklenen sezgisel bir grafik görünümünde toplar.
aws-inventory: (python2 kullanır) Bu, bir hesapta oluşturulan tüm AWS kaynaklarını keşfetmeye çalışan bir araçtır.
aws_public_ips: Bu, bir AWS hesabıyla ilişkili tüm genel IP adreslerini (hem IPv4/IPv6) alma aracı.
SkyArk: Taranan AWS ortamındaki en ayrıcalıklı kullanıcıları, AWS Shadow Admin'leri de dahil olmak üzere keşfedin. PowerShell kullanır. Check-PrivilegedPolicy
fonksiyonunda ayrıcalıklı politikaların tanımını bulabilirsiniz https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1.
pacu: Pacu, bulut ortamlarına karşı saldırgan güvenlik testleri için tasarlanmış açık kaynaklı bir AWS exploitation framework'üdür. Numaralandırabilir, yanlış yapılandırmaları bulabilir ve bunları istismar edebilir. user_escalation_methods
dict içinde https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 adresinde ayrıcalıklı izinlerin tanımını bulabilirsiniz.
Pacu'nun yalnızca kendi privesc yollarınızı kontrol ettiğini unutmayın (hesap genelinde değil).
PMapper: Principal Mapper (PMapper), bir AWS hesabı veya AWS organizasyonu için AWS Kimlik ve Erişim Yönetimi (IAM) yapılandırmasındaki riskleri belirlemek için bir script ve kütüphanedir. Farklı IAM Kullanıcıları ve Rolleri, bir hesabın yönlendirilmiş grafiği olarak modellenir; bu, yetki yükseltme ve bir saldırganın AWS'de bir kaynağa veya eyleme erişim kazanmak için alabileceği alternatif yollar için kontroller yapılmasını sağlar. privesc yollarını bulmak için kullanılan izinleri kontrol edebilirsiniz, dosya adları _edges.py
ile biten https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing adresinde.
cloudsplaining: Cloudsplaining, en az ayrıcalık ihlallerini tespit eden ve risk öncelikli bir HTML raporu oluşturan bir AWS IAM Güvenlik Değerlendirme aracıdır. Bu araç, potansiyel olarak aşırı ayrıcalıklı müşteri, inline ve aws politikalarını ve hangi prensiplerin bunlara erişimi olduğunu gösterecektir. (Bu sadece privesc kontrolü yapmakla kalmaz, aynı zamanda diğer ilginç izin türlerini de kontrol eder, kullanılması önerilir).
cloudjack: CloudJack, ayrılmış Route53 ve CloudFront yapılandırmaları sonucunda alt alan kaçırma açıklarını değerlendirmek için AWS hesaplarını analiz eder.
ccat: ECR repo'larını listele -> ECR repo'sunu çek -> Arka kapı ekle -> Arka kapılı görüntüyü it.
Dufflebag: Dufflebag, yanlışlıkla bırakılmış olabilecek gizli bilgileri bulmak için kamuya açık Elastic Block Storage (EBS) anlık görüntülerini arama yapan bir araçtır.
cloudsploit: Aqua tarafından geliştirilen CloudSploit, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) ve GitHub dahil olmak üzere bulut altyapısı hesaplarındaki güvenlik risklerini tespit etmeye yönelik açık kaynak bir projedir (ShadowAdmins için arama yapmaz).
Prowler: Prowler, AWS güvenlik en iyi uygulamaları değerlendirmeleri, denetimleri, olay müdahalesi, sürekli izleme, sertleştirme ve adli hazırlık yapmak için bir Açık Kaynak güvenlik aracıdır.
CloudFox: CloudFox, tanıdık olmayan bulut ortamlarında durum farkındalığı kazanmanıza yardımcı olur. Penetrasyon test uzmanları ve diğer saldırgan güvenlik profesyonellerinin bulut altyapısında istismar edilebilir saldırı yollarını bulmalarına yardımcı olmak için oluşturulmuş açık kaynaklı bir komut satırı aracıdır.
ScoutSuite: Scout Suite, bulut ortamlarının güvenlik durumu değerlendirmesine olanak tanıyan açık kaynaklı çoklu bulut güvenlik denetim aracıdır.
cs-suite: Bulut Güvenliği Paketi (python2.7 kullanır ve bakımsız görünüyor)
Zeus: Zeus, AWS EC2 / S3 / CloudTrail / CloudWatch / KMS için güçlü bir en iyi sertleştirme uygulamaları aracıdır (bakımsız görünüyor). Sadece sistem içindeki varsayılan yapılandırılmış kimlik bilgilerini kontrol eder.
cloud-custodian: Cloud Custodian, kamu bulut hesaplarını ve kaynaklarını yönetmek için bir kurallar motorudur. Kullanıcılara iyi yönetilen bir bulut altyapısını etkinleştirmek için politikalar tanımlama imkanı verir; bu, hem güvenli hem de maliyet açısından optimize edilmiştir. Birçok kuruluşun el yapımı betiklerini hafif ve esnek bir araca dönüştürerek, birleşik metrikler ve raporlama ile bir araya getirir.
pacbot: Kod Olarak Politika Botu (PacBot), bulut için sürekli uyum izleme, uyum raporlama ve güvenlik otomasyonu platformudur. PacBot'ta, güvenlik ve uyum politikaları kod olarak uygulanır. PacBot tarafından keşfedilen tüm kaynaklar, politika uyumunu değerlendirmek için bu politikalara karşı değerlendirilir. PacBot'un otomatik düzeltme çerçevesi, önceden tanımlanmış eylemleri alarak politika ihlallerine otomatik olarak yanıt verme yeteneği sağlar.
streamalert: StreamAlert, herhangi bir ortamdan veri almanıza, analiz etmenize ve uyarı vermenize olanak tanıyan sunucusuz, gerçek zamanlı bir veri analiz çerçevesidir; veri kaynakları ve uyarı mantığını tanımlayarak kullanabilirsiniz. Bilgisayar güvenliği ekipleri, olay tespiti ve yanıtı için her gün terabaytlarca günlük verisini taramak için StreamAlert'ı kullanır.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)