53 lines
1.8 KiB
Bash
Executable File
53 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
HOST="${HOST:-192.168.88.108}"
|
|
USER_NAME="${USER_NAME:-Admin}"
|
|
PASS="${PASS:-P@ssw0rd!}"
|
|
|
|
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
SCRIPT="$HERE/../powershell/nirsoft-dump.ps1"
|
|
DUMP_DIR="$HERE/dumps"
|
|
LOG_DIR="$HERE/../../logs"
|
|
STAMP="$(date +%Y%m%d-%H%M%S)"
|
|
LOG="$LOG_DIR/nirsoft-dump-${HOST}-${STAMP}.log"
|
|
|
|
mkdir -p "$DUMP_DIR" "$LOG_DIR"
|
|
|
|
SSH_OPTS=(-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10)
|
|
|
|
echo "[*] Uploading nirsoft-dump.ps1 to $USER_NAME@$HOST"
|
|
sshpass -p "$PASS" scp "${SSH_OPTS[@]}" "$SCRIPT" \
|
|
"$USER_NAME@$HOST:C:/Users/$USER_NAME/nirsoft-dump.ps1" >/dev/null
|
|
|
|
echo "[*] Running dump on $HOST (this takes ~1-2 min), log -> $LOG"
|
|
OUT=$(sshpass -p "$PASS" ssh "${SSH_OPTS[@]}" "$USER_NAME@$HOST" \
|
|
"powershell -NoProfile -ExecutionPolicy Bypass -File C:/Users/$USER_NAME/nirsoft-dump.ps1" \
|
|
2>&1 | tee "$LOG")
|
|
|
|
REMOTE_ZIP=$(echo "$OUT" | grep '^DUMP_ZIP:' | awk '{print $2}' | tr -d '\r')
|
|
REMOTE_SIZE=$(echo "$OUT" | grep '^DUMP_SIZE:' | awk '{print $2}' | tr -d '\r')
|
|
|
|
if [[ -z "$REMOTE_ZIP" ]]; then
|
|
echo "[!] Could not find DUMP_ZIP line in output" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Convert Windows path to forward-slash form for scp + basename
|
|
REMOTE_ZIP_SCP=$(echo "$REMOTE_ZIP" | sed 's|\\|/|g')
|
|
LOCAL_ZIP="$DUMP_DIR/$(basename "$REMOTE_ZIP_SCP")"
|
|
|
|
echo ""
|
|
echo "[*] Pulling zip back: $REMOTE_ZIP_SCP (${REMOTE_SIZE} bytes) -> $LOCAL_ZIP"
|
|
sshpass -p "$PASS" scp "${SSH_OPTS[@]}" \
|
|
"$USER_NAME@$HOST:$REMOTE_ZIP_SCP" "$LOCAL_ZIP" >/dev/null
|
|
|
|
# Clean up remote copy
|
|
sshpass -p "$PASS" ssh "${SSH_OPTS[@]}" "$USER_NAME@$HOST" \
|
|
"del \"$REMOTE_ZIP\"" >/dev/null 2>&1 || true
|
|
|
|
echo ""
|
|
echo "[OK] Dump saved: $LOCAL_ZIP"
|
|
echo " Unzip with: unzip -l \"$LOCAL_ZIP\" (to list)"
|
|
echo " unzip \"$LOCAL_ZIP\" -d \"${LOCAL_ZIP%.zip}/\" (to extract)"
|