Initial commit
This commit is contained in:
52
scripts/ssh/nirsoft-dump.sh
Executable file
52
scripts/ssh/nirsoft-dump.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/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)"
|
||||
Reference in New Issue
Block a user