OreBolt-OS/docs/source-scripts/gemini-code-1779936545288.sh

594 lines
12 KiB
Bash
Executable File

#!/usr/bin/env bash
# ==============================================================================
# PROJECT OREBOLT - AUTOMATED HEADLESS DISASTER RECOVERY PAYLOAD INJECTOR v1.0
# Enforces build-directory execution and provisions 150 structured modules.
# ==============================================================================
set -euo pipefail
# --- 1. DEFENSIVE ENVIRONMENT DIRECTORY GUARDRAIL ---
TARGET_MARKER="h2-workspace"
CURRENT_DIR_NAME=$(basename "$(pwd)")
EXPECTED_DATA_DIR="overlay/data"
echo "======================================================================"
echo " PROJECT OREBOLT: RUNTIME TARGET ENVIRONMENT VALIDATION "
echo "======================================================================"
if [ "${CURRENT_DIR_NAME}" != "${TARGET_MARKER}" ] || [ ! -d "${EXPECTED_DATA_DIR}" ]; then
echo "[-] CRITICAL ERROR: Execution denied."
echo " This script must run exclusively from within the primary build root:"
echo " --> '${TARGET_MARKER}/'"
echo " Current directory context: '$(pwd)'"
echo " Aborting payload provisioning immediately to protect file trees."
echo "======================================================================"
exit 1
fi
echo "[+] Validation passed: Operating inside validated workspace root."
echo "[*] Initializing target storage sub-directories..."
PAYLOAD_ROOT="${EXPECTED_DATA_DIR}/payloads"
mkdir -p "${PAYLOAD_ROOT}/linux"
mkdir -p "${PAYLOAD_ROOT}/macos"
mkdir -p "${PAYLOAD_ROOT}/windows"
# --- 2. STREAMING PAYLOAD MATRIX PROVISIONING ---
echo "[*] Provisioning Menu 1: Linux Emergency Subsystems (01 - 50)..."
# Category A: Display Servers & DM Recovery
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/01_restart_lightdm.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING systemctl restart lightdm
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/02_restart_gdm3.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING systemctl restart gdm3
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/03_restart_sddm.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING systemctl restart sddm
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/04_kill_wayland.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING pkill -9 -f wayland
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/05_rebuild_xorg.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING rm -f /etc/X11/xorg.conf && Xorg -configure && mv /root/xorg.conf.new /etc/X11/xorg.conf
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/06_clear_x11_locks.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING rm -f /tmp/.X*-lock /tmp/.11-unix/X*
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/07_drop_tty3.dd"
CTRL ALT F3
DELAY 1000
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/08_prompt_clear.dd"
CTRL ALT F2
DELAY 1000
CTRL c
DELAY 200
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/09_kill_desktop_context.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING pkill -KILL -u $(whoami)
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/10_restart_gnome_shell.dd"
ALT F2
DELAY 500
STRING r
ENTER
EOF
# Category B: Data Extraction & System Cloning
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/11_backup_rootfs.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING tar --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run -cf /rootfs_rescue.tar /
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/12_backup_homes.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING tar -cf /home_backup.tar /home/
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/13_backup_etc.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING tar -cf /etc_backup.tar /etc/
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/14_isolate_ssh_keys.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING tar -cf /ssh_credentials.tar /home/*/.ssh /root/.ssh
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/15_backup_net_metadata.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING tar -cf /net_metadata.tar /etc/network/ /etc/netplan/ /etc/NetworkManager/
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/16_dump_mbr.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING dd if=/dev/sda of=/mbr_core.bin bs=512 count=1
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/17_extract_hashes.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING cp /etc/passwd /etc/shadow /etc/group /
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/18_compress_mail.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING tar -cf /mail_backup.tar /var/mail/ /var/spool/
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/19_export_packages.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING dpkg --get-selections > /installed_packages.txt || rpm -qa > /installed_packages.txt
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/20_locate_sqlite_dbs.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING find / -name "*.db" -o -name "*.sqlite" > /sqlite_locations.txt
ENTER
EOF
# Category C: Infrastructure Storage & Updates Triage
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/21_clear_dpkg_locks.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING rm -f /var/lib/dpkg/lock-frontend /var/lib/apt/lists/lock && dpkg --configure -a
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/22_vacuum_journals.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING journalctl --vacuum-size=10M && systemctl restart systemd-journald
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/23_flush_ram_caches.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING sync && echo 3 > /proc/sys/vm/drop_caches
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/24_rebuild_initramfs.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING update-initramfs -u -k all
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/25_reverify_grub.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING update-grub || grub2-mkconfig -o /boot/grub2/grub.cfg
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/26_clean_apt_cache.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING apt-get clean && apt-get autoremove -y
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/27_identify_space_leaks.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING du -ah / 2>/dev/null | sort -rh | head -n 50 > /space_hogs.txt
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/28_schedule_fsck.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING touch /forcefsck
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/29_clear_tmp.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING find /tmp -type f -atime +1 -delete
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/30_remount_rw.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING mount -o remount,rw /
ENTER
EOF
# Category D: Firewalls & Authentication Recovery
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/31_inject_admin.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING useradd -m -g sudo -s /bin/bash orebolt && echo "orebolt:bolt60" | chpasswd
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/32_elevate_current_user.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING usermod -aG sudo,admin $(whoami)
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/33_flush_iptables.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING iptables -F && iptables -X && iptables -t nat -F && iptables -P INPUT ACCEPT
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/34_enable_ssh.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING systemctl enable --now ssh || service ssh start
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/35_ufw_bypass_ssh.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING ufw allow 22/tcp && ufw reload
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/36_disable_apparmor.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING systemctl stop apparmor && systemctl disable apparmor
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/37_permissive_selinux.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/38_clear_known_hosts.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING rm -f /home/*/.ssh/known_hosts /root/.ssh/known_hosts
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/39_authorize_ssh_passwords.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config && systemctl restart ssh
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/40_clear_root_password.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING passwd -d root
ENTER
EOF
# Category E: Bare-Metal Control Loops
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/41_sysrq_sync.dd"
ALT SysRq s
DELAY 500
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/42_sysrq_umount.dd"
ALT SysRq u
DELAY 500
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/43_sysrq_reboot.dd"
ALT SysRq b
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/44_sysrq_poweroff.dd"
ALT SysRq o
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/45_stream_dmesg.dd"
CTRL ALT F4
DELAY 1000
STRING root
ENTER
DELAY 500
STRING dmesg -w
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/46_sysrq_memdump.dd"
ALT SysRq m
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/47_sysrq_oom_kill.dd"
ALT SysRq f
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/48_enable_serial_getty.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING systemctl enable --now serial-getty@ttyS0.service
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/49_flash_interfaces_down.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING ip link set eth0 down && ip link set wlan0 down
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/linux/50_loop_keyboard_leds.dd"
CTRL ALT F2
DELAY 1000
STRING root
ENTER
DELAY 500
STRING while true; do xset led on; sleep 1; xset led off; sleep 1; done
ENTER
EOF
echo "[*] Provisioning Menu 2: macOS Recovery Engines (51 - 100)..."
# Category A: Session Managers & Terminal Focus
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/51_spotlight_terminal.dd"
GUI SPACE
DELAY 4000
STRING Terminal
ENTER
DELAY 1500
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/52_single_user_mode.dd"
COMMAND s
DELAY 4000
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/53_break_execution.dd"
CTRL c
DELAY 200
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/54_kill_finder.dd"
OPTION COMMAND ESC
DELAY 1000
STRING Finder
ENTER
DELAY 500
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/55_restart_opendirectoryd.dd"
GUI SPACE
DELAY 500
STRING Terminal
ENTER
DELAY 1000
STRING sudo killall opendirectoryd
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/56_force_close_front_app.dd"
COMMAND SHIFT OPTION ESC
DELAY 1000
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/57_kill_windowserver.dd"
GUI SPACE
DELAY 500
STRING Terminal
ENTER
DELAY 1000
STRING sudo killall -9 WindowServer
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/58_invoke_sysdiagnose_hotkey.dd"
COMMAND OPTION PERIOD
DELAY 1000
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/59_drop_to_login_screen.dd"
COMMAND SHIFT q
DELAY 500
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/60_kill_systemuiserver.dd"
GUI SPACE
DELAY 500
STRING Terminal
ENTER
DELAY 1000
STRING sudo killall SystemUIServer
ENTER
EOF
# Category B: Asset Recovery & Storage Captures
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/61_archive_system_configs.dd"
GUI SPACE
DELAY 500
STRING Terminal
ENTER
DELAY 1000
STRING tar -cf ~/Desktop/mac_configs.tar /etc/hosts /etc/resolv.conf /Library/Preferences/SystemConfiguration/
ENTER
EOF
cat << 'EOF' > "${PAYLOAD_ROOT}/macos/62_archive_keychains.dd"
GUI SPACE
DELAY 500
STRING Terminal
ENTER
DELAY 1000
STRING tar -cf ~/Desktop/keychains.tar ~/Library/Keychains/
ENTER