Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
Temel Metodoloji
Her bulutun kendine özgü özellikleri olsa da, genel olarak bir bulut ortamını test ederken bir pentester'ın kontrol etmesi gereken birkaç ortak şey vardır:
Benchmarks kontrolleri
Bu, ortamın boyutunu ve kullanılan hizmetleri anlamanıza yardımcı olur
Ayrıca, bu testlerin çoğunu otomatik araçlarla gerçekleştirebileceğiniz için bazı hızlı yanlı yapılandırmaları bulmanıza olanak sağlar
Hizmetlerin Sıralaması
Eğer benchmark testlerini doğru bir şekilde gerçekleştirdiyseniz, burada çok fazla yanlı yapılandırma bulamayabilirsiniz, ancak benchmark testinde aranmayan bazı yanlı yapılandırmaları bulabilirsiniz.
Bu, bulut ortamında tam olarak neyin kullanıldığını bilmenizi sağlar
Bu, bir sonraki adımlarda çok yardımcı olacaktır
Açığa çıkarılan varlıkları kontrol edin
Bu, önceki bölümde yapılabilir, potansiyel olarak İnternet'e açık olan her şeyi ve nasıl erişilebileceğini bulmanız gerekmektedir.
Burada, web sayfaları veya diğer portlarla açığa çıkarılan manuel olarak açığa çıkarılan altyapıyı ve ayrıca açığa çıkarılabilecek diğer bulut yönetilen hizmetleri (örneğin DB'ler veya kovalar) ele alıyorum.
Ardından, o kaynağın açığa çıkarılıp çıkarılamayacağını kontrol etmelisiniz (gizli bilgi mi? zafiyetler mi? açığa çıkarılan hizmette yanlı yapılandırmalar mı?)
İzinleri kontrol edin
Burada, bulutta her bir rol/kullanıcının tüm izinlerini bulmanız ve nasıl kullanıldığını öğrenmeniz gerekmektedir
Çok fazla yüksek ayrıcalıklı (her şeyi kontrol eden) hesap mı var? Kullanılmayan oluşturulmuş anahtarlar mı var?... Bu kontrollerin çoğu zaten benchmark testlerinde yapılmış olmalıdır
İstemci OpenID veya SAML veya diğer federasyon kullanıyorsa, her bir rolün nasıl atanmış olduğu hakkında daha fazla bilgi istemeniz gerekebilir (admin rolünün 1 kullanıcıya mı yoksa 100 kullanıcıya mı atanmış olduğu aynı değildir)
Sadece hangi kullanıcıların admin izinlerine sahip olduğunu bulmak yeterli değildir "*:*". Kullanılan hizmetlere bağlı olarak çok sayıda diğer izin vardır ve bunlar çok duyarlı olabilir.
Dahası, izinleri kötüye kullanarak takip edilebilecek potansiyel ayrıcalık yükseltme yolları vardır. Tüm bu şeyler göz önünde bulundurulmalı ve mümkün olan en fazla ayrıcalık yükseltme yolu bildirilmelidir.
Entegrasyonları kontrol edin
Muhtemelen bulut ortamında diğer bulutlar veya SaaS'larla entegrasyonlar kullanılıyor.
Denetlediğiniz bulutun diğer platformlarla entegrasyonları için, o entegrasyona kimin erişimi olduğunu (kötüye kullanma) bildirmeli ve yapılan işlemin ne kadar duyarlı olduğunu sormalısınız.
Örneğin, GCP'nin veri aldığı bir AWS kovasına kimin yazabileceğini (GCP'nin o veriyi nasıl işlediğini sormalısınız).
Dış platformlardan denetlediğiniz buluta entegre olan entegrasyonlar için, o entegrasyona dışarıdan kimin erişimi olduğunu (kötüye kullanma) sormalı ve o verinin nasıl kullanıldığını kontrol etmelisiniz.
Örneğin, bir hizmetin GCR'de barındırılan bir Docker görüntüsünü kullandığı durumda, kimin bunu değiştirmeye erişimi olduğunu ve bu görüntünün bir AWS bulutunda çalıştırıldığında hangi hassas bilgilere ve erişime sahip olacağını sormalısınız.
Çoklu Bulut Araçları
Farklı bulut ortamlarını test etmek için kullanılabilecek birkaç araç vardır. Kurulum adımları ve bağlantılar bu bölümde belirtilecektir.
Bulutlarda ve bulutlar/SaaS'lar arasında yanlı yapılandırmaları ve ayrıcalık yükseltme yollarını belirlemek için bir araç.
# You need to install and run neo4j alsogitclonehttps://github.com/carlospolop/PurplePandacdPurplePandapython3-mvenv.sourcebin/activatepython3-mpipinstall-rrequirements.txtexport PURPLEPANDA_NEO4J_URL="bolt://neo4j@localhost:7687"export PURPLEPANDA_PWD="neo4j_pwd_4_purplepanda"python3main.py-h# Get help
This section describes the methodology for performing penetration testing on Google Cloud Platform (GCP) environments.
Reconnaissance
Identify the target GCP environment and gather information about the target organization.
Enumerate GCP services and resources.
Identify potential attack vectors and vulnerabilities.
Scanning and Enumeration
Scan for open ports and services.
Enumerate GCP resources, such as instances, buckets, and databases.
Identify misconfigurations and security weaknesses.
Vulnerability Assessment
Conduct vulnerability scanning and assessment on GCP resources.
Identify and prioritize vulnerabilities based on severity.
Verify the existence of vulnerabilities through manual testing.
Exploitation
Exploit identified vulnerabilities to gain unauthorized access or escalate privileges.
Test for common misconfigurations and weak security controls.
Attempt to bypass security mechanisms and gain unauthorized access to sensitive data.
Post-Exploitation
Maintain access to compromised systems.
Conduct lateral movement and privilege escalation.
Gather and exfiltrate sensitive data.
Reporting
Document all findings, including vulnerabilities, exploits, and sensitive data accessed.
Provide recommendations for remediation and improving security posture.
Present the findings to the client in a clear and concise manner.
Cleanup
Remove any traces of the penetration testing activities.
Restore systems and configurations to their original state.
Ensure that no sensitive data is left behind.
It is important to note that penetration testing should only be performed with proper authorization and in a controlled environment to minimize the risk of causing harm or disruption to the target organization.
export GOOGLE_DISCOVERY=$(echo'google:- file_path: ""- file_path: ""service_account_id: "some-sa-email@sidentifier.iam.gserviceaccount.com"'|base64)python3main.py-a-pgoogle#Get basic info of the account to check it's correctly configuredpython3main.py-e-pgoogle#Enumerate the env
# Installpipinstallprowlerprowler-v# Runprowler<provider># Exampleprowleraws--profilecustom-profile [-M csvjsonjson-asffhtml]# Get info about checks & servicesprowler<provider>--list-checksprowler<provider>--list-services
This section describes the methodology for performing penetration testing on Google Cloud Platform (GCP) environments.
Reconnaissance
Identify the target GCP environment and gather information about the target organization.
Enumerate GCP services and resources.
Identify potential attack vectors and vulnerabilities.
Scanning and Enumeration
Scan for open ports and services.
Enumerate GCP resources, such as instances, buckets, and databases.
Identify misconfigurations and security weaknesses.
Vulnerability Assessment
Conduct vulnerability scanning and assessment on GCP resources.
Identify and prioritize vulnerabilities based on severity.
Verify the existence of vulnerabilities through manual testing.
Exploitation
Exploit identified vulnerabilities to gain unauthorized access or escalate privileges.
Test for common misconfigurations and weak security controls.
Attempt to bypass security mechanisms and gain unauthorized access to sensitive data.
Post-Exploitation
Maintain access to compromised systems.
Conduct lateral movement and privilege escalation.
Gather and exfiltrate sensitive data.
Reporting
Document all findings, including vulnerabilities, exploits, and sensitive data accessed.
Provide recommendations for remediation and improving security posture.
Present the findings to the client in a clear and concise manner.
Cleanup
Remove any traces of the penetration testing activities.
Restore systems and configurations to their original state.
Ensure that no sensitive data is left behind.
It is important to note that penetration testing should only be performed with proper authorization and in a controlled environment to minimize the risk of causing harm or disruption to the target organization.
## You need to have creds for a service account and set them in config.js file./index.js--cloudgoogle--config</abs/path/to/config.js>
mkdirscout; cdscoutvirtualenv-ppython3venvsourcevenv/bin/activatepipinstallscoutsuitescout--help## Using Docker: https://github.com/nccgroup/ScoutSuite/wiki/Docker-Image
GCP (Google Cloud Platform) bulut platformunda pentesting yaparken, aşağıdaki metodolojiyi takip etmek faydalı olabilir:
Bilgi Toplama: Hedef hakkında mümkün olduğunca çok bilgi toplayın. Hedefin IP adresleri, alt alanları, hedefin kullanıcıları ve hedefin kullandığı GCP hizmetleri gibi bilgileri belirlemeye çalışın.
Zayıf Noktaları Belirleme: Hedefteki zayıf noktaları tespit etmek için otomatik tarama araçları kullanın. Ayrıca, hedefin güvenlik yapılandırmalarını ve hizmetlerini inceleyerek potansiyel zayıf noktaları belirlemeye çalışın.
Kimlik Doğrulama ve Yetkilendirme: Hedefin kimlik doğrulama ve yetkilendirme mekanizmalarını test edin. Kullanıcı hesaplarının güçlü parolalarla korunduğunu ve gereksiz ayrıcalıkların olmadığını doğrulayın.
Veri Sızdırmazlık: Hedefteki veri sızıntılarını tespit etmek için hassas bilgileri içeren dosyaları arayın. Bu dosyaları hedef sistemlerden çalmak veya erişmek için yöntemler araştırın.
Ağ Keşfi: Hedefin ağ yapısını ve hedef sistemler arasındaki ilişkileri anlamak için ağ keşfi yapın. Ağdaki açık portları, hedef sistemlerin IP adreslerini ve hedef sistemler arasındaki iletişimi belirlemeye çalışın.
Zafiyet Taraması: Hedef sistemlerdeki zafiyetleri tespit etmek için otomatik zafiyet tarama araçları kullanın. Bu taramaları düzenli olarak tekrarlayarak yeni zafiyetlerin ortaya çıkmasını takip edin.
Sosyal Mühendislik: Hedefin çalışanlarını manipüle etmek veya yanıltmak için sosyal mühendislik tekniklerini kullanın. Bu, kullanıcıların kimlik bilgilerini ifşa etmelerini veya kötü amaçlı yazılımları açmalarını sağlamak için yapılabilir.
Uzaktan Erişim: Hedef sistemlere uzaktan erişim sağlamak için güvenlik açıklarını kullanın. Bu, hedef sistemlere yetkisiz erişim sağlamak veya hedef sistemlerde kötü amaçlı yazılımlar çalıştırmak için kullanılabilir.
İzleme ve Erişim Kontrolü: Hedef sistemlerdeki izleme ve erişim kontrol mekanizmalarını test edin. Bu, hedef sistemlerdeki güvenlik olaylarını izlemek ve yetkisiz erişimi engellemek için kullanılan mekanizmaları değerlendirmenizi sağlar.
Raporlama: Tüm bulgularınızı ve keşiflerinizi ayrıntılı bir rapor halinde sunun. Bu rapor, hedefin güvenlik açıklarını ve potansiyel riskleri anlamalarına yardımcı olacaktır.
Bu metodolojiyi takip ederek GCP üzerinde pentesting yaparken daha etkili ve sistematik bir yaklaşım benimseyebilirsiniz. Ancak, her zaman hedefin izni ve onayı olmadan pentesting yapmamalısınız.
scoutgcp--report-dir/tmp/gcp--user-account--all-projects## use "--service-account KEY_FILE" instead of "--user-account" to use a service accountSCOUT_FOLDER_REPORT="/tmp"for pid in $(gcloudprojectslist--format="value(projectId)"); doecho"================================================"echo"Checking $pid"mkdir"$SCOUT_FOLDER_REPORT/$pid"scoutgcp--report-dir"$SCOUT_FOLDER_REPORT/$pid"--no-browser--user-account--project-id"$pid"done
This section describes the methodology for performing penetration testing on Google Cloud Platform (GCP) environments.
Reconnaissance
Identify the target GCP environment and gather information about the target organization.
Enumerate GCP services and resources.
Identify potential attack vectors and vulnerabilities.
Scanning and Enumeration
Scan for open ports and services.
Enumerate GCP resources, such as instances, buckets, and databases.
Identify misconfigurations and security weaknesses.
Vulnerability Assessment
Conduct vulnerability scanning and assessment on GCP resources.
Identify and prioritize vulnerabilities based on severity.
Verify the existence of vulnerabilities through manual testing.
Exploitation
Exploit identified vulnerabilities to gain unauthorized access or escalate privileges.
Test for common misconfigurations and weak access controls.
Attempt to bypass security controls and gain unauthorized access to sensitive data.
Post-Exploitation
Maintain access to compromised systems.
Conduct lateral movement and privilege escalation.
Gather and exfiltrate sensitive data.
Reporting
Document all findings, including vulnerabilities, exploits, and sensitive data accessed.
Provide recommendations for remediation and improving security posture.
Present the findings to the client in a clear and concise manner.
It is important to note that penetration testing should only be performed with proper authorization and in a controlled environment to minimize the risk of causing harm or disruption to the target organization.
# Install gcp pluginsteampipeplugininstallgcp# Use https://github.com/turbot/steampipe-mod-gcp-compliance.gitgitclonehttps://github.com/turbot/steampipe-mod-gcp-compliance.gitcdsteampipe-mod-gcp-compliance# To run all the checks from the dashboardsteampipedashboard# To run all the checks from rhe clisteampipecheckall
Tüm Projeleri Kontrol Et
Tüm projeleri kontrol etmek için test edilecek tüm projeleri belirten gcp.spc dosyasını oluşturmanız gerekmektedir. Aşağıdaki betikteki talimatları takip edebilirsiniz.
FILEPATH="/tmp/gcp.spc"rm-rf"$FILEPATH"2>/dev/null# Generate a json like object for each projectfor pid in $(gcloudprojectslist--format="value(projectId)"); doecho"connection \"gcp_$(echo-n $pid |tr "-" "_" )\" {plugin = \"gcp\"project = \"$pid\"}">>"$FILEPATH"done# Generate the aggragator to callecho'connection "gcp_all" {plugin = "gcp"type = "aggregator"connections = ["gcp_*"]}'>>"$FILEPATH"echo"Copy $FILEPATH in ~/.steampipe/config/gcp.spc if it was correctly generated"
# Install aws pluginsteampipeplugininstallaws# Modify the spec indicating in "profile" the profile name to usenano~/.steampipe/config/aws.spc# Get some info on how the AWS account is being usedgitclonehttps://github.com/turbot/steampipe-mod-aws-insights.gitcdsteampipe-mod-aws-insightssteampipedashboard# Get the services exposed to the internetgitclonehttps://github.com/turbot/steampipe-mod-aws-perimeter.gitcdsteampipe-mod-aws-perimetersteampipedashboard# Run the benchmarksgitclonehttps://github.com/turbot/steampipe-mod-aws-compliancecdsteampipe-mod-aws-compliancesteampipedashboard# To see results in browsersteampipecheckall--export=/tmp/output4.json
AWS, GCP, Azure, DigitalOcean.
Python2.7 gerektirir ve bakımsız görünüyor.
Nessus
Nessus, AWS, Azure, Office 365, Rackspace, Salesforce'u destekleyen bir Audit Cloud Infrastructure taramasına sahiptir. Azure için bazı ek yapılandırmalar bir Client Id elde etmek için gereklidir.
Cartography, bir Neo4j veritabanı tarafından desteklenen sezgisel bir graf görünümünde altyapı varlıklarını ve aralarındaki ilişkileri birleştiren bir Python aracıdır.
# Installationdockerimagepullghcr.io/lyft/cartographydockerrun--platformlinux/amd64ghcr.io/lyft/cartographycartography--help## Install a Neo4j DB version 3.5.*
This section describes the methodology for performing penetration testing on Google Cloud Platform (GCP) environments.
Reconnaissance
Identify the target GCP environment and gather information about the target organization.
Enumerate GCP services and resources.
Identify potential attack vectors and vulnerabilities.
Scanning and Enumeration
Scan for open ports and services.
Enumerate GCP resources, such as instances, buckets, and databases.
Identify misconfigurations and security weaknesses.
Vulnerability Assessment
Conduct vulnerability scanning and assessment on GCP resources.
Identify and prioritize vulnerabilities based on severity.
Verify the existence of vulnerabilities through manual testing.
Exploitation
Exploit identified vulnerabilities to gain unauthorized access or escalate privileges.
Test for common misconfigurations and weak access controls.
Attempt to bypass security controls and gain unauthorized access to sensitive data.
Post-Exploitation
Maintain access to compromised systems.
Conduct lateral movement and privilege escalation.
Gather and exfiltrate sensitive data.
Reporting
Document all findings, including vulnerabilities, exploits, and sensitive data accessed.
Provide recommendations for remediation and improving security posture.
Present the findings to the client in a clear and concise manner.
It is important to note that penetration testing should only be performed with proper authorization and in a controlled environment to minimize the risk of causing harm or disruption to the target organization.
dockerrun--platformlinux/amd64 \--volume "$HOME/.config/gcloud/application_default_credentials.json:/application_default_credentials.json" \-e GOOGLE_APPLICATION_CREDENTIALS="/application_default_credentials.json" \-e NEO4j_PASSWORD="s3cr3t" \ghcr.io/lyft/cartography \--neo4j-uri bolt://host.docker.internal:7687 \--neo4j-password-env-var NEO4j_PASSWORD \--neo4j-user neo4j# It only checks for a few services inside GCP (https://lyft.github.io/cartography/modules/gcp/index.html)## Cloud Resource Manager## Compute## DNS## Storage## Google Kubernetes Engine### If you can run starbase or purplepanda you will get more info
Starbase, bulut altyapısı, SaaS uygulamaları, güvenlik kontrolleri ve daha fazlası gibi hizmetlerden ve sistemlerden varlıkları ve ilişkileri toplar ve Neo4j veritabanı tarafından desteklenen sezgisel bir grafik görünümüne dönüştürür.
# You are going to need Node version 14, so install nvm following https://tecadmin.net/install-nvm-macos-with-homebrew/npminstall--globalyarnnvminstall14gitclonehttps://github.com/JupiterOne/starbase.gitcdstarbasenvmuse14yarninstallyarnstarbase--help# Configure manually config.yaml depending on the env to analyzeyarnstarbasesetupyarnstarbaserun# Dockergitclonehttps://github.com/JupiterOne/starbase.gitcdstarbasecpconfig.yaml.exampleconfig.yaml# Configure manually config.yaml depending on the env to analyzedockerbuild--no-cache-tstarbase:latest.docker-composerunstarbasesetupdocker-composerunstarbaserun
This section describes the methodology for performing penetration testing on Google Cloud Platform (GCP) environments.
Reconnaissance
Identify the target GCP environment and gather information about the target organization.
Enumerate GCP services and resources.
Identify potential attack vectors and vulnerabilities.
Scanning and Enumeration
Scan for open ports and services.
Enumerate GCP resources, such as instances, buckets, and databases.
Identify misconfigurations and security weaknesses.
Vulnerability Assessment
Conduct vulnerability scanning and assessment on GCP resources.
Identify and prioritize vulnerabilities based on severity.
Verify the existence of vulnerabilities through manual testing.
Exploitation
Exploit identified vulnerabilities to gain unauthorized access or escalate privileges.
Test for common misconfigurations and weak security controls.
Attempt to bypass security mechanisms and gain unauthorized access to sensitive data.
Post-Exploitation
Maintain access to compromised systems.
Conduct lateral movement and privilege escalation.
Gather and exfiltrate sensitive data.
Reporting
Document all findings, including vulnerabilities, exploits, and sensitive data accessed.
Provide recommendations for remediation and improving security posture.
Present the findings to the client in a clear and concise manner.
Cleanup
Remove any traces of the penetration testing activities.
Restore systems and configurations to their original state.
Ensure that no sensitive data is left behind.
It is important to note that penetration testing should only be performed with proper authorization and in a controlled environment to minimize the risk of causing harm or disruption to the target organization.
## Config for GCP### Check out: https://github.com/JupiterOne/graph-google-cloud/blob/main/docs/development.md### It requires service account credentialsintegrations:-name:graph-google-cloudinstanceId:testInstanceIddirectory:./.integrations/graph-google-cloudgitRemoteUrl:https://github.com/JupiterOne/graph-google-cloud.gitconfig:SERVICE_ACCOUNT_KEY_FILE: '{Check https://github.com/JupiterOne/graph-google-cloud/blob/main/docs/development.md#service_account_key_file-string}'
PROJECT_ID:""FOLDER_ID:""ORGANIZATION_ID:""CONFIGURE_ORGANIZATION_PROJECTS:falsestorage:engine:neo4jconfig:username:neo4jpassword:s3cr3turi:bolt://localhost:7687#Consider using host.docker.internal if from docker
Taranan AWS veya Azure ortamında en ayrıcalıklı kullanıcıları, AWS Shadow Admin'leri dahil olmak üzere keşfedin. PowerShell kullanır.
Import-Module .\SkyArk.ps1 -forceStart-AzureStealth# in the Cloud ConsoleIEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cyberark/SkyArk/master/AzureStealth/AzureStealth.ps1')
Scan-AzureAdmins
Bir şirketin (hedef) altyapısını, dosyalarını ve uygulamalarını en popüler bulut sağlayıcılarında (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode) bulmak için bir araç.
CloudFox, bulut altyapısında sömürülebilir saldırı yollarını bulmak için bir araçtır (şu anda yalnızca AWS ve Azure desteklenmektedir, GCP yakında gelecek).
Bu, manuel pentesting'i tamamlayan bir numaralandırma aracıdır.
Bulut ortamında herhangi bir veri oluşturmaz veya değiştirmez.
Stormspotter, bir Azure aboneliğindeki kaynakların bir "saldırı grafiği" oluşturur. Kırmızı takımların ve pentesterların kiracı içindeki saldırı yüzeyini ve dönüşüm fırsatlarını görselleştirmesini sağlar ve savunucularını hızla yönlendirir ve olay yanıtı çalışmalarını önceliklendirir.
Office365
Global Admin veya en azından Global Admin Reader gereklidir (ancak Global Admin Reader biraz sınırlıdır). Bununla birlikte, bu sınırlamalar bazı PS modüllerinde ortaya çıkar ve özelliklere web uygulaması üzerinden erişerek atlanabilir.
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!
HackTricks'i desteklemenin diğer yolları:
Şirketinizi HackTricks'te tanıtmak veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!