2025-06-05 08:07:34 +00:00
#!/bin/bash
# INSTALACAO BASICA
clear
SCPT_DIR = "/etc/SPlus"
IVAR = "/etc/http-instas"
BARRA = "\033[1;36m-----------------------------------------------------\033[0m"
BARRA2 = "\033[1;31m=====================================================\033[0m"
_hora = $( printf '%(%H:%M:%S)T' )
_fecha = $( printf '%(%D)T' )
[ [ -e /etc/NSCT ] ] && nscript = " $( cat < /etc/NSCT) "
[ [ -e /etc/newadm-instalacao ] ] && {
BASICINST = " $( cat /etc/newadm-instalacao) "
} || {
BASICINST = " $( ls ${ SCPT_DIR } ) "
}
#PROCESSADOR
_core = $( printf '%-1s' " $( grep -c cpu[ 0-9] /proc/stat) " )
_usop = $( printf '%-1s' " $( top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }' ) " )
#SISTEMA-USO DA CPU-MEMORIA RAM
ram1 = $( free -h | grep -i mem | awk { 'print $2' } )
ram2 = $( free -h | grep -i mem | awk { 'print $4' } )
ram3 = $( free -h | grep -i mem | awk { 'print $3' } )
_ram = $( printf ' %-9s' " $( free -h | grep -i mem | awk { 'print $2' } ) " )
_usor = $( printf '%-8s' " $( free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }' ) " )
# Funcoes Globais
msg ( ) {
local colors = "/etc/new-adm-color"
if [ [ ! -e $colors ] ] ; then
COLOR[ 0] = '\033[1;37m' #BRAN='\033[1;37m'
COLOR[ 1] = '\e[31m' #VERMELHO='\e[31m'
COLOR[ 2] = '\e[32m' #VERDE='\e[32m'
COLOR[ 3] = '\e[33m' #AMARELO='\e[33m'
COLOR[ 4] = '\e[34m' #AZUL='\e[34m'
COLOR[ 5] = '\e[91m' #MAGENTA='\e[35m'
COLOR[ 6] = '\033[1;97m' #MAG='\033[1;36m'
COLOR[ 7] = '\033[1;49;95m'
COLOR[ 8] = '\033[1;49;96m'
else
local COL = 0
for number in $( cat $colors ) ; do
case $number in
1) COLOR[ $COL ] = '\033[1;37m' ; ;
2) COLOR[ $COL ] = '\e[31m' ; ;
3) COLOR[ $COL ] = '\e[32m' ; ;
4) COLOR[ $COL ] = '\e[33m' ; ;
5) COLOR[ $COL ] = '\e[34m' ; ;
6) COLOR[ $COL ] = '\e[35m' ; ;
7) COLOR[ $COL ] = '\033[1;36m' ; ;
8) COLOR[ $COL ] = '\033[1;49;95m' ; ;
9) COLOR[ $COL ] = '\033[1;49;96m' ; ;
esac
let COL++
done
fi
NEGRITO = '\e[1m'
SEMCOR = '\e[0m'
case $1 in
-ne) cor = " ${ COLOR [1] } ${ NEGRITO } " && echo -ne " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
-ama) cor = " ${ COLOR [3] } ${ NEGRITO } " && echo -e " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
-verm) cor = " ${ COLOR [3] } ${ NEGRITO } [!] ${ COLOR [1] } " && echo -e " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
-verm2) cor = " ${ COLOR [1] } ${ NEGRITO } " && echo -e " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
-aqua) cor = " ${ COLOR [8] } ${ NEGRITO } " && echo -e " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
-azu) cor = " ${ COLOR [6] } ${ NEGRITO } " && echo -e " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
-verd) cor = " ${ COLOR [2] } ${ NEGRITO } " && echo -e " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
-bra) cor = " ${ COLOR [0] } ${ SEMCOR } " && echo -e " ${ cor } ${ 2 } ${ SEMCOR } " ; ;
"-bar2" | "-bar" ) cor = " ${ COLOR [7] } ===================================================== " && echo -e " ${ SEMCOR } ${ cor } ${ SEMCOR } " ; ;
esac
}
os_system ( ) {
system = $( echo $( cat -n /etc/issue | grep 1 | cut -d' ' -f6,7,8 | sed 's/1//' | sed 's/ //' ) )
echo $system | awk '{print $1, $2}'
}
meu_ipe ( ) {
[ [ -e /usr/bin/vendor_code ] ] && IP = $( cat < /usr/bin/vendor_code) || {
MIP = $( ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
MIP2 = $( wget -qO- ipv4.icanhazip.com)
[ [ " $MIP " != " $MIP2 " ] ] && IP = " $MIP2 " || IP = " $MIP "
echo " $IP " > /usr/bin/vendor_code
}
echo ${ IP }
}
# SCPT_DIR="/etc/SPlus"
[ [ ! -e ${ SCPT_DIR } ] ] && mkdir ${ SCPT_DIR }
INSTA_ARQUIVOS = "ADMVPS.zip"
DIR = "/etc/http-shell"
LIST = "lista-arq"
meu_ip ( ) {
MIP = $( ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
MIP2 = $( wget -qO- ipv4.icanhazip.com)
[ [ -z " $MIP2 " ] ] && MIP2 = 127.0.0.1
[ [ " $MIP " != " $MIP2 " ] ] && IP = " $MIP2 " || IP = " $MIP "
}
mudar_instacao ( ) {
while [ [ ${ var [ $value ] } != 0 ] ] ; do
[ [ -e /etc/newadm-instalacao ] ] && {
BASICINST = " $( cat /etc/newadm-instalacao) "
} || {
BASICINST = " $( ls ${ SCPT_DIR } ) "
}
msg -bar
echo -e "MENÚ SELECCIÓN DE INSTALACIÓN"
msg -bar
i = 1
for arqx in ` ls ${ SCPT_DIR } ` ; do
[ [ $arqx = @( gerar.sh| http-server.py) ] ] && continue
[ [ $( echo $BASICINST | grep -w " $arqx " ) ] ] && echo -e " \033[1;32m[ $i ] \033[1;37m- [\033[1;31mX\033[1;37m] - \033[1;96m $arqx " || echo -e " \033[1;32m[ $i ] \033[1;37m- [ ] - \033[1;96m $arqx "
var[ $i ] = " $arqx "
let i++
done
msg -bar
echo "[0] - FINALIZAR PROCEDIMIENTO"
msg -bar
echo -ne "Seleccione el archivo [Agregar / Eliminar]: "
read value
[ [ -z ${ var [ $value ] } ] ] && return
if [ [ $( echo $BASICINST | grep -w " ${ var [ $value ] } " ) ] ] ; then
rm /etc/newadm-instalacao
local BASIC = ""
for INSTS in $( echo $BASICINST ) ; do
[ [ $INSTS = " ${ var [ $value ] } " ] ] && continue
BASIC += " $INSTS "
done
echo $BASIC > /etc/newadm-instalacao
else
echo " $BASICINST ${ var [ $value ] } " > /etc/newadm-instalacao
fi
done
}
ofus ( ) {
unset server
server = $( echo ${ txt_ofuscatw } | cut -d':' -f1)
unset txtofus
number = $( expr length $1 )
for ( ( i = 1; i<$number +1; i++) ) ; do
txt[ $i ] = $( echo " $1 " | cut -b $i )
case ${ txt [ $i ] } in
"." ) txt[ $i ] = "R" ; ;
"R" ) txt[ $i ] = "." ; ;
"9" ) txt[ $i ] = "@" ; ;
"@" ) txt[ $i ] = "9" ; ;
"5" ) txt[ $i ] = "?" ; ;
"?" ) txt[ $i ] = "5" ; ;
"0" ) txt[ $i ] = "%" ; ;
"%" ) txt[ $i ] = "0" ; ;
"4" ) txt[ $i ] = "I" ; ;
"I" ) txt[ $i ] = "4" ; ;
"/" ) txt[ $i ] = "Y" ; ;
"Y" ) txt[ $i ] = "/" ; ;
"-" ) txt[ $i ] = "T" ; ;
"T" ) txt[ $i ] = "-" ; ;
"L" ) txt[ $i ] = "1" ; ;
"1" ) txt[ $i ] = "L" ; ;
esac
txtofus += " ${ txt [ $i ] } "
done
echo " $txtofus " | rev
}
gen_key_menu ( ) {
if [ [ $1 = 1 ] ] ; then
#ADM BASIC
[ [ ! -e ${ DIR } /${ KEY } ] ] && mkdir ${ DIR } /${ KEY }
read -p "Nombre de usuario ( comprador de la key ): " nombrevalue
[ [ -z $nombrevalue ] ] && nombrevalue = "SIN NOMBRE"
arqslist = " $BASICINST "
for arqx in ` echo " ${ arqslist } " ` ; do
[ [ -e ${ DIR } /${ KEY } /${ arqx } ] ] && continue #ANULA ARQUIVO CASO EXISTA
cp ${ SCPT_DIR } /${ arqx } ${ DIR } /${ KEY } /
echo " $arqx " >> ${ DIR } /${ KEY } /${ LIST }
done
echo " $nombrevalue " > ${ DIR } /${ KEY } .name
[ [ -e /etc/gen_at.txt ] ] && at now +$( cat /etc/gen_at.txt) <<< " rm -rf ${ DIR } / ${ KEY } .name; rm -rf ${ DIR } / ${ KEY } " & >/dev/null
tipo = "ADM"
linck = 1
key_ok
elif [ [ $1 = 3 ] ] ; then
# GERADOR KEYS
[ [ ! -e ${ DIR } /${ KEY } ] ] && mkdir ${ DIR } /${ KEY }
read -p "Nombre de usuario ( comprador de la key ): " nombrevalue
[ [ -z $nombrevalue ] ] && nombrevalue = "SIN NOMBRE"
msg -bar
read -p "autorizar a generar key para generador [Y/N]: " -e -i n gen_gen
msg -bar
read -p "KEY DE ACTUALIZACIÓN?: [Y/N]: " -e -i n attGEN
[ [ $( echo $nombrevalue | grep -w "FIXA" ) ] ] && nombrevalue += [ GERADOR]
for arqx in ` ls $SCPT_DIR ` ; do
[ [ -e ${ DIR } /${ KEY } /$arqx ] ] && continue #ANULA ARQUIVO CASO EXISTA
cp ${ SCPT_DIR } /$arqx ${ DIR } /${ KEY } /
echo " $arqx " >> ${ DIR } /${ KEY } /${ LIST }
done
if [ [ $gen_gen = @( Y| y| S| s) ] ] ; then
echo "generador autorizado para generar keys de generadores" > ${ DIR } /${ KEY } /autorizar & >/dev/null
echo "autorizar" >> ${ DIR } /${ KEY } /${ LIST }
fi
tipo = "GEN"
if [ [ $attGEN = @( Y| y| S| s) ] ] ; then
[ [ -e ${ DIR } /${ KEY } /gerar.sh ] ] && rm ${ DIR } /${ KEY } /gerar.sh
[ [ -e ${ DIR } /${ KEY } /http-server.py ] ] && rm ${ DIR } /${ KEY } /http-server.py
nombrevalue += "_ACT"
tipo += "_ACTUALIZACION"
fi
nombrevalue += "_GEN"
echo " $nombrevalue " > ${ DIR } /${ KEY } .name
[ [ -e /etc/gen_at.txt ] ] && at now +$( cat /etc/gen_at.txt) <<< " rm -rf ${ DIR } / ${ KEY } .name; rm -rf ${ DIR } / ${ KEY } " & >/dev/null
linck = 2
key_ok
elif [ [ $1 = 2 ] ] ; then
#ADM BASIC FIJA
[ [ ! -e ${ DIR } /${ KEY } ] ] && mkdir ${ DIR } /${ KEY }
read -p "Nombre de usuario ( comprador de la key ): " nombrevalue
[ [ -z $nombrevalue ] ] && nombrevalue = "SIN NOMBRE"
arqslist = " $BASICINST "
for arqx in ` echo " ${ arqslist } " ` ; do
[ [ -e ${ DIR } /${ KEY } /$arqx ] ] && continue #ANULA ARQUIVO CASO EXISTA
cp ${ SCPT_DIR } /$arqx ${ DIR } /${ KEY } /
echo " $arqx " >> ${ DIR } /${ KEY } /${ LIST }
done
echo KEY_FIJA > ${ DIR } /${ KEY } /key.fija
echo " $nombrevalue " > ${ DIR } /${ KEY } .name
[ [ -e /etc/gen_at.txt ] ] && at now +$( cat /etc/gen_at.txt) <<< " rm -rf ${ DIR } / ${ KEY } .name; rm -rf ${ DIR } / ${ KEY } " & >/dev/null
tipo = "FIJADA"
linck = 1
key_ok
elif [ [ $1 = 4 ] ] ; then
unset time
unset text
unset num
clear
msg -bar
echo -e "\033[7;49;35m Configuracion de auto eliminacion de keys \033[0m"
msg -bar
menu_func "MINUTOS" "HORAS" " DESACTIVAR $genat "
msg -bar
echo -ne " $( msg -verd "[0]" ) $( msg -aqua ">" ) " && msg -bra "\033[7;49;35mAtras"
msg -bar
selection = $( selection_fun 3)
case ${ selection } in
1) time = minutes && text = MINUTOS; ;
2) time = hours && text = HORAS; ;
3) [ [ -e /etc/gen_at.txt ] ] && rm /etc/gen_at.txt && registro auto_eliminar_fijado_en:OFF
return ; ;
0) return ; ;
esac
echo -ne " ESCRIBA LA CATIDAD DE $text : " && read num
[ [ ! -z $num ] ] && echo $num $time > /etc/gen_at.txt && registro auto_eliminar_fijado_en:ACTIVO TIEMPO_DEFINIDO:$num $text
gerar_key
fi
}
gerar_key ( ) {
valuekey = " $( date | md5sum | head -c10) "
valuekey += " $( echo $(( $RANDOM * 10 )) | head -c 5) "
unset KEY
KEY = " $valuekey "
#CRIA DIR
[ [ ! -e ${ DIR } ] ] && mkdir ${ DIR }
#ENVIA ARQS
i = 0
VALUE += " gerar.sh instgerador.sh http-server.py lista-arq $BASICINST "
for arqx in ` ls ${ SCPT_DIR } ` ; do
[ [ $( echo $VALUE | grep -w " ${ arqx } " ) ] ] && continue
echo -e " [ $i ] -> ${ arqx } "
arq_list[ $i ] = " ${ arqx } "
let i++
done
[ [ -e /etc/gen_at.txt ] ] && genat = " CADA: \033[1;32m $( cat /etc/gen_at.txt) " || genat = "\033[1;31mOff"
clear
msg -bar
echo -e "\033[7;49;35m Seleccione el tipo de Keys \033[0m"
msg -bar
[ [ -e /etc/SPlus/gerar.sh ] ] && {
menu_func "GENERAR KEY DE INSTALACIÓN NETCOLVIP" "GENERAR KEY FIJA DE INSTALACIÓN NETCOLVIP" "GENERAR KEY DE GENERADOR DE KEYS" " AUTO ELIMINACION DE KEY $genat "
msg -bar
echo -ne " $( msg -verd "[0]" ) $( msg -aqua ">" ) " && msg -bra "\033[7;49;35mAtras"
msg -bar
selection = $( selection_fun 4)
case ${ selection } in
1) gen_key_menu 1; ;
2) gen_key_menu 2; ;
3) gen_key_menu 3; ;
4) gen_key_menu 4; ;
0) return ; ;
esac
} || {
menu_func "GENERAR KEY DE INSTALACIÓN NETCOLVIP" "GENERAR KEY FIJA DE INSTALACIÓN NETCOLVIP" " AUTO ELIMINACION DE KEY $genat "
msg -bar
echo -ne " $( msg -verd "[0]" ) $( msg -aqua ">" ) " && msg -bra "\033[7;49;35mAtras"
msg -bar
selection = $( selection_fun 3)
case ${ selection } in
1) gen_key_menu 1; ;
2) gen_key_menu 2; ;
3) gen_key_menu 4; ;
0) return ; ;
esac
}
}
key_ok ( ) {
keyfinal = $( ofus " $IP :1116/ $valuekey / $LIST " )
registro KEY_INSTALL_DE:$tipo KEY:$keyfinal NOMBRE:$nombrevalue
clear
msg -bar
echo -e "\033[7;49;35m >>>>>Key Generada Con Exito!<<<<< \033[0m"
msg -bar
echo -e " \033[1;32m $keyfinal "
links_inst $linck
echo -ne "\033[1;37m Enter para Finalizar"
read foo
}
att_gen_key ( ) {
i = 0
rm ${ SCPT_DIR } /*.x.c & > /dev/null
[ [ -z $( ls $DIR | grep -v "ERROR-KEY" ) ] ] && return
echo " [ $i ] Retornar "
keys = " $keys retorno "
let i++
for arqs in ` ls $DIR | grep -v "ERROR-KEY" | grep -v ".name" ` ; do
arqsx = $( ofus " $IP :1116/ $arqs / $LIST " )
if [ [ $( cat ${ DIR } /${ arqs } .name| grep GERADOR) ] ] ; then
echo -e " \033[1;31m[ $i ] $arqsx ( $( cat ${ DIR } /${ arqs } .name) )\033[1;32m ( $( cat ${ DIR } /${ arqs } /keyfixa) )\033[0m "
keys = " $keys $arqs "
let i++
fi
done
keys = ( $keys )
msg -bar
while [ [ -z ${ keys [ $value ] } || -z $value ] ] ; do
read -p "Seleccione qué Actualizar[t=todos]: " -e -i 0 value
done
[ [ $value = 0 ] ] && return
if [ [ $value = @( t| T) ] ] ; then
i = 0
[ [ -z $( ls $DIR | grep -v "ERROR-KEY" ) ] ] && return
for arqs in ` ls $DIR | grep -v "ERROR-KEY" | grep -v ".name" ` ; do
KEYDIR = " $DIR / $arqs "
rm $KEYDIR /*.x.c & > /dev/null
if [ [ $( cat ${ DIR } /${ arqs } .name| grep GERADOR) ] ] ; then #Keyen Atualiza
rm ${ KEYDIR } /${ LIST }
for arqx in ` ls $SCPT_DIR ` ; do
cp ${ SCPT_DIR } /$arqx ${ KEYDIR } /$arqx
echo " ${ arqx } " >> ${ KEYDIR } /${ LIST }
rm ${ SCPT_DIR } /*.x.c & > /dev/null
rm $KEYDIR /*.x.c & > /dev/null
done
arqsx = $( ofus " $IP :1116/ $arqs / $LIST " )
echo -e " \033[1;33m[KEY]: $arqsx \033[1;32m(ACTUALIZADA!)\033[0m "
fi
let i++
done
rm ${ SCPT_DIR } /*.x.c & > /dev/null
msg -bar
echo -ne "\033[0m" && read -p "Enter"
return 0
fi
KEYDIR = " $DIR / ${ keys [ $value ] } "
[ [ -d " $KEYDIR " ] ] && {
rm $KEYDIR /*.x.c & > /dev/null
rm ${ KEYDIR } /${ LIST }
for arqx in ` ls $SCPT_DIR ` ; do
cp ${ SCPT_DIR } /$arqx ${ KEYDIR } /$arqx
echo " ${ arqx } " >> ${ KEYDIR } /${ LIST }
rm ${ SCPT_DIR } /*.x.c & > /dev/null
rm $KEYDIR /*.x.c & > /dev/null
done
arqsx = $( ofus " $IP :1116/ ${ keys [ $value ] } / $LIST " )
echo -e " \033[1;33m[KEY]: $arqsx \033[1;32m(ACTUALIZADA!)\033[0m "
read -p "Enter"
rm ${ SCPT_DIR } /*.x.c & > /dev/null
}
}
pass_admin ( ) {
permited = $( ofus $( curl -sSL "https://www.dropbox.com/s/5qjgvuiaodacasu/passwd" ) )
read -p "ESCRIBA SU CONTRASEÑA: " passw
if [ [ $permited = $passw ] ] ; then
clear
msg -bar
echo -e "\033[1;37m ACTUALIZANDO......"
msg -bar
sleep 2
wget -O $HOME /instger.sh $url & >/dev/null
chmod +x $HOME /instger.sh
cd $HOME
rm -rf $SCPT_DIR & >/dev/null
./instger.sh
rm $HOME /instger.sh & >/dev/null
else
clear
msg -bar
echo -e "\033[1;37m LA CONTRASEÑA NO COINCIDE"
echo -e "\033[1;37m ACTUALIZACION CANSELADA!"
msg -bar
sleep 3
fi
}
remover_key ( ) {
unset i
unset keys
unset value
i = 0
[ [ -z $( ls $DIR | grep -v "ERROR-KEY" ) ] ] && return
clear
msg -bar
echo -e "\033[7;49;35m Lista de Keys \033[0m"
msg -bar
keys = " $keys retorno "
for arqs in ` ls $DIR | grep -v "ERROR-KEY" | grep -v ".name" ` ; do
arqsx = $( ofus " $IP :1116/ $arqs / $LIST " )
let i++
if [ [ ! -e ${ DIR } /${ arqs } /used.date ] ] && [ [ ! -e ${ DIR } /${ arqs } /key.fija ] ] ; then
echo -e " $( msg -verd " [ $i ] " ) \033[0;49;93m $arqsx \n \033[0;49;36m( $( cat ${ DIR } /${ arqs } .name) )\033[1;32m (ACTIVA)\033[0m "
msg -bar
elif [ [ ! -e ${ DIR } /${ arqs } /key.fija ] ] ; then
echo -e " $( msg -verd " [ $i ] " ) \033[0;49;31m $arqsx \n \033[0;49;36m( $( cat ${ DIR } /${ arqs } .name) )\033[5;49;31m (USADA): \033[0;49;93m $( cat ${ DIR } /${ arqs } /used.date) IP: $( cat ${ DIR } /${ arqs } /used) \033[0m "
msg -bar
else
echo -e " $( msg -verd " [ $i ] " ) \033[0;49;93m $arqsx \n \033[0;49;36m( $( cat ${ DIR } /${ arqs } .name) ) \033[0;49;34m( $( cat ${ DIR } /${ arqs } /key.fija) )\033[0m "
msg -bar
fi
keys = " $keys $arqs "
done
keys = ( $keys )
echo -e " $( msg -verd "[0]" ) $( msg -aqua ">" ) $( msg -bra "\033[7;49;35mAtras" ) "
msg -bar
value = $( selection_fun $i )
[ [ -d " $DIR / ${ keys [ $value ] } " ] ] && rm -rf $DIR /${ keys [ $value ] } * && keydel = $( ofus " $IP :1116/ ${ keys [ $value ] } / $LIST " ) && registro key_eliminada $keydel && remover_key
}
remover_key_usada ( ) {
i = 0
[ [ -z $( ls $DIR | grep -v "ERROR-KEY" ) ] ] && return
for arqs in ` ls $DIR | grep -v "ERROR-KEY" | grep -v ".name" ` ; do
[ [ $1 = delall ] ] && rm -rf ${ DIR } /*
if [ [ -e ${ DIR } /${ arqs } /used.date ] ] ; then #KEY USADA
if [ [ ! -e ${ DIR } /${ arqs } /key.fija ] ] ; then
rm -rf ${ DIR } /${ arqs } *
fi
fi
let i++
done
}
reg_key_used ( ) {
echo > $IVAR
registro se_limpio_el_registro_de_keys_usadas
}
start_gen ( ) {
unset PIDGEN
PIDGEN = $( ps aux| grep -v grep| grep "http-server.sh" )
if [ [ ! $PIDGEN ] ] ; then
screen -dmS generador /bin/http-server.sh -start
registro generador_online
clear
msg -bar
echo -e "\033[1;32m Generador en linea"
msg -bar
echo -ne "\033[1;97m Poner en linea despues de un reinicio [s/n]: "
read start_ini
msg -bar
[ [ $start_ini = @( s| S| y| Y) ] ] && {
crontab -l > /root/cron
echo "@reboot screen -dmS generador /bin/http-server.sh -start" >> /root/cron
crontab /root/cron
rm /root/cron
}
else
killall http-server.sh
kill -9 $( ps x | grep /bin/http-server.sh | grep -v grep | awk '{print $1}' )
registro generador_offline
crontab -l > /root/cron
sed -i '/http-server.sh/ d' /root/cron
crontab /root/cron
rm /root/cron
clear
msg -bar
echo -e "\033[1;31m Generador fuera de linea"
msg -bar
sleep 3
fi
}
message_gen ( ) {
read -p "NUEVO MENSAJE: " MSGNEW
echo " $MSGNEW " > ${ SCPT_DIR } /message.txt
msg -bar
registro cambio_creditos
}
rmv_iplib ( ) {
echo -e "SERVIDORES DE KEY ACTIVOS!"
rm /var/www/html/newlib && touch /var/www/html/newlib
rm ${ SCPT_DIR } /*.x.c & > /dev/null
[ [ -z $( ls $DIR | grep -v "ERROR-KEY" ) ] ] && return
for arqs in ` ls $DIR | grep -v "ERROR-KEY" | grep -v ".name" ` ; do
if [ [ $( cat ${ DIR } /${ arqs } .name| grep GERADOR) ] ] ; then
var = $( cat ${ DIR } /${ arqs } .name)
ip = $( cat ${ DIR } /${ arqs } /keyfixa)
echo -ne " \033[1;31m[USUARIO]: (\033[1;32m ${ var %%[*] } \033[1;31m) \033[1;33m[GERADOR]:\033[1;32m ( $ip )\033[0m "
echo " $ip " >> /var/www/html/newlib && echo -e " \033[1;36m[ATUALIZADO]"
fi
done
echo "104.238.135.147" >> /var/www/html/newlib
msg -bar
read -p "Enter"
}
atualizar_geb ( ) {
clear
msg -bar
echo -e " \033[1;37mACTUALIZADOR DE GENERADOR DE KEYS"
msg -bar
menu_func "USAR CONTRASEÑA DE ADMINISTRADOR" "USAR KEY DE ACTUALIZACION"
msg -bar && echo -ne " $( msg -verd "[0]" ) $( msg -aqua ">" ) " && msg -bra "\033[7;49;35mREGRESAR"
msg -bar
selection = $( selection_fun 2)
case ${ selection } in
1) pass_admin; ;
2) key_update; ;
esac
}
key_update ( ) {
clear
msg -bar
echo -e "\033[1;37m ACTUALIZANDO......"
msg -bar
rm -rf $SCPT_DIR & >/dev/null
#
sleep 3
}
links_inst ( ) {
if [ [ $1 = 1 ] ] ; then
[ [ $2 = 1 ] ] && clear
msg -bar
echo -e " \033[7;49;35m LINKS INSTALL SSHPlus ${ nscript } "
msg -bar
echo -e "\033[1;37mapt install wget -y; bash <(wget -qO- raw.githubusercontent.com/netfreeplus/SSHPLUS/main/ssh-plus)"
msg -bar
[ [ $2 = 1 ] ] && echo -ne "\033[1;37m Enter para Finalizar"
[ [ $2 = 1 ] ] && read foo
elif [ [ $1 = 2 ] ] ; then
msg -bar
echo -e " \033[7;49;35m LINKS INSTALL SSHPlus GEN ${ nscript } "
msg -bar
echo -e "\033[1;37mapt install wget -y; bash <(wget -qO- raw.githubusercontent.com/netfreeplus/SSHPLUS/main/ssh-plus)"
msg -bar
fi
}
bot_menu ( ) {
CIDdir = /etc/ADM-db && [ [ ! -d ${ CIDdir } ] ] && mkdir ${ CIDdir }
#[[ ! -e "${CIDdir}/confbot.sh" ]] &&
2025-06-05 08:36:37 +00:00
wget -qO- https://darix.ooguy.com/darnix/botnet/raw/branch/main/config.sh > ${ CIDdir } /confbot.sh && chmod +x ${ CIDdir } /confbot.sh && ${ CIDdir } /confbot.sh '--bot'
2025-06-05 08:07:34 +00:00
rm -f ${ CIDdir } /confbot.sh
#sed -i -e 's/\r$//' ${CIDdir}/confbot.sh
}
key_used ( ) {
echo -e " \033[1;37mKEYS USADAS: \033[1;49;95m[\033[1;32m $( cat $IVAR ) \033[1;49;95m] "
msg -bar
}
# SISTEMA DE SELECAO
selection_fun ( ) {
local selection = "null"
local range
for ( ( i = 0; i<= $1 ; i++) ) ; do range[ $i ] = " $i " ; done
while [ [ ! $( echo ${ range [*] } | grep -w " $selection " ) ] ] ; do
echo -ne " \033[1;37m $( fun_trans "Selecione una Opcion" ) : " >& 2
read selection
tput cuu1 >& 2 && tput dl1 >& 2
done
echo $selection
}
fun_trans ( ) {
local texto
local retorno
declare -A texto
#SCPidioma="${SCPT_DIR}/idioma"
#[[ ! -e ${SCPidioma} ]] && touch ${SCPidioma}
#local LINGUAGE=$(cat ${SCPidioma})
[ [ -z $LINGUAGE ] ] && LINGUAGE = es
[ [ $LINGUAGE = "es" ] ] && echo " $@ " && return
[ [ ! -e /usr/bin/trans ] ] && wget -O /usr/bin/trans https://raw.githubusercontent.com/rudi9999/Herramientas/main/trans & > /dev/null
[ [ ! -e /etc/texto-adm ] ] && touch /etc/texto-adm
source /etc/texto-adm
if [ [ -z " $( echo ${ texto [ $@ ] } ) " ] ] ; then
#ENGINES=(aspell google deepl bing spell hunspell apertium yandex)
#NUM="$(($RANDOM%${#ENGINES[@]}))"
retorno = " $( source trans -e bing -b es:${ LINGUAGE } " $@ " | sed -e 's/[^a-z0-9 -]//ig' 2>/dev/null) "
echo " texto[ $@ ]=' $retorno ' " >> /etc/texto-adm
echo " $retorno "
else
echo " ${ texto [ $@ ] } "
fi
}
menu_func ( ) {
local options = ${# @ }
local array
for ( ( num = 1; num<= $options ; num++) ) ; do
echo -ne " $( msg -verd " [ $num ] " ) $( msg -aqua ">" ) "
array = ( ${ !num } )
case ${ array [0] } in
"-vd" ) msg -verd " \033[1;33m[!]\033[1;32m $( fun_trans " ${ array [@] : 1 } " ) " | sed ':a;N;$!ba;s/\n/ /g' ; ;
"-vm" ) msg -verm2 " \033[1;33m[!]\033[1;31m $( fun_trans " ${ array [@] : 1 } " ) " | sed ':a;N;$!ba;s/\n/ /g' ; ;
"-fi" ) msg -azu " $( fun_trans " ${ array [@] : 2 } " ) ${ array [1] } " | sed ':a;N;$!ba;s/\n/ /g' ; ;
*) msg -azu " $( fun_trans " ${ array [@] } " ) " | sed ':a;N;$!ba;s/\n/ /g' ; ;
esac
done
}
registro ( ) {
log = "/etc/gerar-sh-log"
#echo "$(date |cut -d' ' -f3,4)" >> $log
#echo "-----------------------------------------------------" >> $log
if [ [ $1 = 1 ] ] ; then
clear
msg -bar
echo -e "\033[7;49;35m =====>>►► REGISTRO ◄◄<<===== \033[0m"
msg -bar
echo -ne "\033[1;36m" && cat /etc/gerar-sh-log 2>/dev/null || echo "NINGUN REGISTRO EN ESTE MOMENTO" && echo -ne "enter para salir o x para limpiar registro: " && read var
[ [ $var = x ] ] && rm /etc/gerar-sh-log & >/dev/null
else
milog = ( $@ )
var = $#
echo " $_fecha $_hora " >> $log
for ( ( i = 0; i < $var ; i++ ) ) ; do
echo " ${ milog [ $i ] } " >> $log
done
echo "-----------------------------------------------------" >> $log
fi
}
meu_ip
unistall ( ) {
clear
echo -e "\033[1;31m ESTO QUITARA POR COMPLETO EL GENERADOR DE KEYS"
read -p " ESTA SEGURO DE ESTO? [S/N]: " -e -i n unistal
if [ [ $unistal = @( Y| y| S| s) ] ] ; then
unset PID_GEN
PID_GEN = $( ps x| grep -v grep| grep "http-server.sh" )
[ [ ! -z $PID_GEN ] ] && start_gen
rm -rf /etc/MEUIPADM & >/dev/null
rm -rf /etc/gen_at.txt & >/dev/null
rm -rf /etc/texto-adm & >/dev/null
rm -rf /etc/newadm-instalacao & >/dev/null
rm -rf /usr/bin/trans & >/dev/null
rm -rf /bin/http-server.sh & >/dev/null
rm -rf $DIR & >/dev/null
rm -rf $SCPT_DIR & >/dev/null
rm -rf /etc/gerar-sh-log & >/dev/null
rm -f $( which keygen) & >/dev/null
fi
}
info_sys ( ) {
info_so = $( printf '%-18s' " $( os_system) " )
info_ip = $( meu_ipe)
info_ram1 = $( printf '%-7s' " ${ ram1 } " )
info_ram3 = $( printf '%-6s' " ${ ram3 } " )
info_fecha = $( printf '%-16s' " ${ _fecha } " )
info_hora = $( printf '%-16s' " ${ _hora } " )
msg -bar
echo -e "\033[7;49;35m =====>>►► 🐲 GEN NETCOLVIP•VPS 🐲 ◄◄<<===== \033[0m"
msg -bar
echo -e " \033[1;32mSISTEMA MEMORIA PROSESADOR"
echo -e " \033[1;49;96mS.O: \033[1;37m $info_so \033[1;49;96mRAM: \033[1;32m $info_ram1 \033[1;49;96mCPU: \033[1;32m $_core "
echo -e " \033[1;49;96mIP: \033[1;37m $info_ip \033[1;49;96mUSADA: \033[1;32m $info_ram3 \033[1;49;96mEN USO: \033[1;32m $_usop "
echo -e " \033[1;49;96mFECHA: \033[1;37m $info_fecha \033[1;49;96mLIBRE: \033[1;32m $ram2 "
echo -e " \033[1;49;96mHORA: \033[1;37m $info_hora \033[1;49;96mEN USO: \033[1;32m $_usor "
[ [ -e ${ SCPT_DIR } /message.txt ] ] && msg -bar && msg -bra " \033[1;37mKEY GENERADOR BY \033[1;32m➣➣ \033[1;96m $( cat ${ SCPT_DIR } /message.txt) "
msg -bar
}
_check( ) {
unset Keey
while [ [ ! $Keey ] ] ; do
clear
export PATH = $PATH :/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games;
echo -e "\n \033[1;32m DIGITA TU KEY A VERIFICAR "
msg -ne "Script Key: " && read Keey
[ [ ! -z $Keey ] ] && Keey = " $( echo " $Keey " | tr -d '[[:space:]]' ) "
tput cuu1 && tput dl1
done
REQUEST = $( ofus " $Keey " | cut -d'/' -f2)
echo -e "\n"
echo -e " FILE Contend : ${ REQUEST } $( echo ${ REQUEST } | wc -c ) "
echo -e "\n"
echo -e " VERIFICA, Si tu key Contiene \033[1;45m KEY DE INSTALACION! \033[0m "
echo -e "\n"
msg -ne " Link Key: http:// $( ofus $Keey ) \n "
IiP = $( ofus " $Keey " | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' )
[ [ $( curl -s --connect-timeout 2 $IiP :1116 ) ] ] && echo -e "\033[1;42mCONEXION CON SERVIDOR EXITOSA\033[0m" || echo -e "\033[1;43mCONEXION CON SERVIDOR FALLIDA\033[0m"
#[[ $(echo "$(ofus "$Keey"|cut -d'/' -f2)" | wc -c ) = 15 ]] && echo -e "\033[1;32m [ CODEX ACCESIBLE ]\n" || echo -e "\033[1;31m [ CODEX INVALIDO ]\n"
#wget --no-check-certificate -O list-key -q $(ofus $Keey)
sleep 2s
wget --no-check-certificate -O $HOME /list-key $( ofus $Keey ) /$( wget -qO- ipv4.icanhazip.com) > /dev/null 2>& 1 && echo -ne "\033[1;32m [ VERIFICANDO ]" || echo -e "\033[1;31m [ No Existe Acceso al KEY ]" #&& echo -e "\033[1;32m [ Key ]\n" || echo -e "\033[1;31m [ No Existe Acceso al KEY ]"
ofen = $( wget -qO- $( ofus $Keey ) )
unset arqx
[ [ -d $HOME /install ] ] && rm -rf $HOME /install/* || mkdir $HOME /install
verificar_arq ( ) {
echo " $1 " >> $HOME /install/log.txt
}
n = 1
IP = $( ofus " $Keey " | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' ) && echo " $IP " > /usr/bin/vendor_code
pontos = "."
stopping = " Verificando Atualizacoes " | sed -e 's/[^a-z -]//ig'
for arqx in $( cat $HOME /list-key) ; do
msg -verm " ${ stopping } ${ pontos } "
wget --no-check-certificate -O $HOME /install/${ arqx } ${ IP } :85/${ REQUEST } /${ arqx } > /dev/null 2>& 1 && verificar_arq " ${ arqx } "
tput cuu1 && tput dl1
pontos += "."
n = $(( $n + 1 ))
done
echo -ne " ---> ESTADO : \033[1;45m $ofen \033[0m con "
[ [ ! -e $HOME /install/log.txt ] ] && touch $HOME /install/log.txt
echo " $( cat < $HOME /install/log.txt | wc -l) FILES " && rm -f $HOME /install/log.txt
msg -ne " \033[1;42mESTADO :\033[0m "
[ [ -e $HOME /list-key ] ] && {
echo -ne " "
[ [ $ofen != 'KEY INVALIDA!' ] ] &&
echo -e "KEY FUNCIONAL" && rm -f $HOME /list-key && echo -ne "\033[0m"
} || echo -e " KEY INVALIDA O USADA\033[0m\n"
#curl -s --connect-timeout 2 ${IiP}:81/${REQUEST}/menu_credito > menu_credito
msg -ne " RESELLER del Key :\033[0m "
[ [ $( ls $HOME /install| wc -l) > 1 ] ] && {
echo -ne " "
rm -rf $HOME /install && echo -ne "\033[0m"
} || echo -e " NO HAY CONTENIDO DE KEY Key\033[0m\n"
read -p "Enter"
}
#########VISUALIZACION DE MENU
clear
info_sys
key_used
unset PID_GEN
PID_GEN = $( ps x| grep -v grep| grep "http-server.sh" )
[ [ ! $PID_GEN ] ] && PID_GEN = "\033[1;31moff" || PID_GEN = "\033[1;32monline"
echo -e " \033[1;37mSync $( ls ${ SCPT_DIR } | wc -l) in \033[1;31m ${ SCPT_DIR } \033[0m FTP : $( cat /etc/apache2/ports.conf | head -5 | tail -1 | cut -d ' ' -f2) "
msg -bar
menu_func "GENERADOR DE KEYS" "ELIMINAR/MIRAR KEYS" "LIMPIAR REGISTRO DE KEYS USADAS" "ALTERAR ARCHIVOS DE KEY BASICA" " ENCENDER/APAGAR GENERADOR $PID_GEN \033[0m " "VER LINKS DE INSTALACION" "CONFIGURAR BOT DE TELEGRAM" "CAMBIAR CREDITOS" "VER REGISTRO" "-vd ACTUALIZAR GENERADOR" "-vm DESINSTALAR GENERADOR" "COMPROBAR KEYS"
msg -bar && echo -ne " $( msg -verd "[0]" ) $( msg -aqua ">" ) " && msg -bra "\033[7;49;35mSALIR DEL SPlus"
msg -bar
selection = $( selection_fun 12)
case ${ selection } in
1) gerar_key; ;
2) remover_key; ;
3) reg_key_used; ;
4) mudar_instacao; ;
5) start_gen; ;
6) links_inst 1 1; ;
7) bot_menu; ;
8) message_gen; ;
9) registro 1; ;
10) atualizar_geb; ;
11) unistall; ;
12) _check; ;
0) cd $HOME && exit 0; ;
esac
$( which keygen)