1236 lines
36 KiB
Bash
1236 lines
36 KiB
Bash
|
|
#!/bin/sh
|
||
|
|
#Autor: Henry Chumo
|
||
|
|
#Alias : ChumoGH
|
||
|
|
|
||
|
|
clear
|
||
|
|
config="/usr/local/etc/trojan/config.json"
|
||
|
|
configLOCK="/usr/local/etc/trojan/config.json.lock"
|
||
|
|
temp="/etc/trojan/temp.json"
|
||
|
|
trojdir="/etc/trojan" && [[ ! -d $trojdir ]] && mkdir $trojdir
|
||
|
|
user_conf="/etc/trojan/user" && [[ ! -e $user_conf ]] && touch $user_conf
|
||
|
|
backdir="/etc/trojan/back" && [[ ! -d ${backdir} ]] && mkdir ${backdir}
|
||
|
|
tmpdir="$backdir/tmp"
|
||
|
|
[[ ! -e $trojdir/conf ]] && echo "autBackup 0" > $trojdir/conf
|
||
|
|
if [[ $(cat $trojdir/conf | grep "autBackup") = "" ]]; then
|
||
|
|
echo "autBackup 0" >> $trojdir/conf
|
||
|
|
fi
|
||
|
|
unset barra
|
||
|
|
barra="\033[0;34m•••••••••••••••••••••••••••••••••••••••••••••••••\033[0m"
|
||
|
|
[[ -e /bin/ejecutar/msg ]] && source /bin/ejecutar/msg || source <(curl -sSL https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/msg-bar/msg)
|
||
|
|
numero='^[0-9]+$'
|
||
|
|
hora=$(printf '%(%H:%M:%S)T')
|
||
|
|
fecha=$(printf '%(%D)T')
|
||
|
|
|
||
|
|
ofus () {
|
||
|
|
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]="x";;
|
||
|
|
"x")txt[$i]=".";;
|
||
|
|
"5")txt[$i]="s";;
|
||
|
|
"s")txt[$i]="5";;
|
||
|
|
"1")txt[$i]="@";;
|
||
|
|
"@")txt[$i]="1";;
|
||
|
|
"2")txt[$i]="?";;
|
||
|
|
"?")txt[$i]="2";;
|
||
|
|
"4")txt[$i]="0";;
|
||
|
|
"0")txt[$i]="4";;
|
||
|
|
"/")txt[$i]="K";;
|
||
|
|
"K")txt[$i]="/";;
|
||
|
|
esac
|
||
|
|
txtofus+="${txt[$i]}"
|
||
|
|
done
|
||
|
|
echo "$txtofus" | rev
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
restroj(){
|
||
|
|
msg -bar3
|
||
|
|
[[ $(ps x | grep trojan | grep -v grep) ]] && {
|
||
|
|
kill $(ps x | grep trojan| grep -v grep | cut -d " " -f1) &> /dev/null
|
||
|
|
[[ $(ps x | grep trojan | grep -v grep) ]] && killall $(which trojan) &> /dev/null
|
||
|
|
}
|
||
|
|
[[ -e /root/server.log ]] && echo "@ChumoGH " > /root/server.log || touch /root/server.log
|
||
|
|
#[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
|
||
|
|
#echo -ne " \033[1;32m • RESTART FOR ARM X64 • " && (screen -dmS trojanserv $(which trojan) --config /usr/local/etc/trojan/config.json >> /root/server.log &) && echo "\033[1;35m OK " || echo -e "\033[1;32mΔ FAIL"
|
||
|
|
#} || echo -ne "\033[1;32m • REINICIANDO SERVICIO • " && (screen -dmS trojanserv $(which trojan) /usr/local/etc/trojan/config.json -l /root/server.log &) && echo "OK " || echo -e "\033[1;32mΔ FAIL"
|
||
|
|
systemctl restart trojan &>/dev/null
|
||
|
|
msg -bar3
|
||
|
|
#chekKEY &> /dev/null 2>&1
|
||
|
|
[[ "$(ps x | grep trojan| grep -v grep)" ]] && echo -e " • SERVICIO CORRIENDO EN EL PUERTO | ➣ $(cat $config | jq -r .local_port) "
|
||
|
|
}
|
||
|
|
|
||
|
|
function chekKEY {
|
||
|
|
[[ -z ${IP} ]] && IP=$(cat < /bin/ejecutar/IPcgh)
|
||
|
|
[[ -z ${IP} ]] && IP=$(wget -qO- ifconfig.me)
|
||
|
|
Key="$(cat /etc/cghkey)"
|
||
|
|
_double=$(curl -sSL "https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Control/Control-Bot.txt")
|
||
|
|
IiP="$(ofus "$Key" | 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}')"
|
||
|
|
[[ -e /file ]] && _double=$(cat < /file) || {
|
||
|
|
wget -q -O /file https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Control/Control-Bot.txt
|
||
|
|
_double=$(cat < /file)
|
||
|
|
}
|
||
|
|
_check2="$(echo -e "$_double" | grep ${IiP})"
|
||
|
|
[[ ! -e /etc/folteto ]] && {
|
||
|
|
wget --no-check-certificate -O /etc/folteto $IiP:81/ChumoGH/checkIP.log
|
||
|
|
cheklist="$(cat /etc/folteto)"
|
||
|
|
echo -e "$(echo -e "$cheklist" | grep ${IP})" > /etc/folteto
|
||
|
|
}
|
||
|
|
[[ -z ${_check2} ]] && {
|
||
|
|
mss_='\n BotGEN NO AUTORIZADO POR @ChumoGH '
|
||
|
|
cat <<EOF >/bin/menu
|
||
|
|
clear && clear
|
||
|
|
echo -e "\n\n\033[1;31m==================================================\n ¡¡ 🚫 KEY BANEADA 🚫 ! CONTACTE Su ADMINISTRADOR! \n==================================================\n ¡¡ FECHA DE BANEO :$(date +%d/%m/%Y) HORA :$(date +%H:%M:%S) \n==================================================\n\n¡¡ ${mss_} \n\n==================================================\n"
|
||
|
|
echo -e " \e[1;32m --- SI CONSIDERA QUE FUE UN ERROR --- " | pv -qL 60
|
||
|
|
echo -e " \e[1;32m -- ${mss_} -- " | pv -qL 60
|
||
|
|
echo -e "\n \e[1;93m --- TECLEA \e[1;93m --- \e[1;97mcgh -fix\e[1;93m --- " | pv -qL 50
|
||
|
|
echo -e "\n\033[1;31m==================================================\n\n"
|
||
|
|
#echo "/etc/adm-lite/menu" > /bin/menu && chmod +x /bin/menu
|
||
|
|
EOF
|
||
|
|
|
||
|
|
rm -f /etc/folteto
|
||
|
|
rm -f /etc/adm-lite/menu*
|
||
|
|
MENSAJE="${TTini}${m3ssg}MSG RECIVIDO${m3ssg}${TTfin}\n"
|
||
|
|
MENSAJE+=" ---------------------------------------------\n"
|
||
|
|
MENSAJE+=" IP Clon: ${IP} Rechazada\n"
|
||
|
|
MENSAJE+=" ---------------------------------------------\n"
|
||
|
|
MENSAJE+=" INSECTO DETECTADO EN TROJAN-GO Plus\n"
|
||
|
|
MENSAJE+=" ---------------------------------------------\n"
|
||
|
|
MENSAJE+=" Key : ${Key}\n"
|
||
|
|
MENSAJE+=" ---------------------------------------------\n"
|
||
|
|
MENSAJE+=" HORA : $(printf '%(%D-%H:%M:%S)T')\n"
|
||
|
|
MENSAJE+=" ---------------------------------------------\n"
|
||
|
|
MENSAJE+=" ${rUlq} Bot ADMcgh de keyS ${rUlq}\n"
|
||
|
|
MENSAJE+=" ${pUn5A} By @ChumoGH ${pUn5A} \n"
|
||
|
|
MENSAJE+=" ---------------------------------------------\n"
|
||
|
|
curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")" $urlBOT &>/dev/null
|
||
|
|
exit && exit
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
restore(){
|
||
|
|
clear
|
||
|
|
|
||
|
|
unset num
|
||
|
|
unset opcion
|
||
|
|
unset _res
|
||
|
|
|
||
|
|
if [[ -z $(ls $backdir) ]]; then
|
||
|
|
title " no se encontraron respaldos"
|
||
|
|
sleep 0.3
|
||
|
|
return
|
||
|
|
fi
|
||
|
|
num=1
|
||
|
|
title " Lista de Respaldos creados"
|
||
|
|
blanco " nom \033[0;31m| \033[1;37mfechas \033[0;31m| \033[1;37mhora"
|
||
|
|
msg -bar3
|
||
|
|
for i in $(ls $backdir); do
|
||
|
|
col "$num)" "$i"
|
||
|
|
_res[$num]=$i
|
||
|
|
let num++
|
||
|
|
done
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "VOLVER"
|
||
|
|
msg -bar3
|
||
|
|
blanco " cual desea restaurar?" 0
|
||
|
|
read opcion
|
||
|
|
|
||
|
|
[[ $opcion = 0 ]] && return
|
||
|
|
[[ -z $opcion ]] && blanco "\n deves seleccionar una opcion!" && sleep 2 && return
|
||
|
|
[[ ! $opcion =~ $numero ]] && blanco "\n solo deves ingresar numeros!" && sleep 2 && return
|
||
|
|
[[ $opcion -gt ${#_res[@]} ]] && blanco "\n solo numeros entre 0 y ${#_res[@]}" && sleep 2 && return
|
||
|
|
|
||
|
|
mkdir $backdir/tmp
|
||
|
|
tar xpf $backdir/${_res[$opcion]} -C $backdir/tmp/
|
||
|
|
|
||
|
|
clear
|
||
|
|
title " Archivos que se restauran"
|
||
|
|
|
||
|
|
if rm -rf $config && cp $tmpdir/config.json $temp; then
|
||
|
|
sleep 1
|
||
|
|
cat $temp > $config
|
||
|
|
chmod 777 $config
|
||
|
|
rm $temp
|
||
|
|
blanco " /usr/local/etc/trojan/config.json..." && verde "[ok]"
|
||
|
|
else
|
||
|
|
blanco " /usr/local/etc/trojan/config.json..." && rojo "[fail]"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if rm -rf $user_conf && cp $tmpdir/user $user_conf; then
|
||
|
|
blanco " /etc/troja/user..." && verde "[ok]"
|
||
|
|
else
|
||
|
|
blanco " /etc/trojan/user..." && rojo "[fail]"
|
||
|
|
fi
|
||
|
|
#[[ -e $tmpdir/fullchain.cer ]] && mv $tmpdir/fullchain.cer $tmpdir/fullchain.crt
|
||
|
|
if cp $tmpdir/*.cer /etc/trojan/fullchain.cer && cp $tmpdir/*.key /etc/trojan/private.key; then
|
||
|
|
blanco " /etc/trojan/fullchain.cer..." && verde "[ok]"
|
||
|
|
blanco " /etc/trojan/private.key..." && verde "[ok]"
|
||
|
|
else
|
||
|
|
blanco " /etc/trojan/fullchain.cer..." && rojo "[fail]"
|
||
|
|
blanco " /etc/trojan/private.key..." && rojo "[fail]"
|
||
|
|
echo $barra
|
||
|
|
echo -e "VALIDA TU CERTIFICADO SSL "
|
||
|
|
fi
|
||
|
|
rm -rf $tmpdir
|
||
|
|
msg -bar3
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
}
|
||
|
|
|
||
|
|
backups(){
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
unset opcion
|
||
|
|
unset PID
|
||
|
|
if [[ $(ps x | grep "http-server" | grep -v grep) = "" ]]; then
|
||
|
|
PID="\033[0;31m[offline]"
|
||
|
|
else
|
||
|
|
PID="\033[1;92m[online]"
|
||
|
|
fi
|
||
|
|
|
||
|
|
clear
|
||
|
|
title " Config de Respaldos"
|
||
|
|
col "1)" "Respaldar Ahora"
|
||
|
|
col "2)" "\033[1;92mRestaurar Respaldo"
|
||
|
|
col "3)" "\033[0;31mEliminiar Respaldos"
|
||
|
|
col "4)" "\033[1;34mRespaldo en linea $PID"
|
||
|
|
col "5)" "\033[1;33mRespaldos automatico $(on_off_res)"
|
||
|
|
msg -bar3
|
||
|
|
|
||
|
|
col "6)" "\033[1;33m RESTAURAR Online PORT :81 "
|
||
|
|
col "7)" "\033[1;33m RESPALDO LOCAL "
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "VOLVER"
|
||
|
|
msg -bar3
|
||
|
|
blanco "opcion" 0
|
||
|
|
read opcion
|
||
|
|
|
||
|
|
case $opcion in
|
||
|
|
1) backup
|
||
|
|
clear
|
||
|
|
title " Nuevo Respaldo Creado..."
|
||
|
|
sleep 0.5;;
|
||
|
|
2) restore;;
|
||
|
|
3) rm -rf $backdir/*.tar
|
||
|
|
clear
|
||
|
|
title " Almacer de Respaldo limpia..."
|
||
|
|
sleep 0.5;;
|
||
|
|
4) server;;
|
||
|
|
|
||
|
|
|
||
|
|
5) if [[ $(cat $v2rdir/conf | grep "autBackup" | cut -d " " -f2) = "0" ]]; then
|
||
|
|
sed -i 's/autBackup 0/autBackup 1/' $v2rdir/conf
|
||
|
|
else
|
||
|
|
sed -i 's/autBackup 1/autBackup 0/' $v2rdir/conf
|
||
|
|
fi;;
|
||
|
|
6)
|
||
|
|
clear
|
||
|
|
echo -e "\033[0;33m
|
||
|
|
ESTA FUNCION EXPERIMENTAL
|
||
|
|
Una vez que se descarge tu Fichero, Escoje el BackOnline
|
||
|
|
|
||
|
|
+ OJO +
|
||
|
|
|
||
|
|
Luego de Restaurarlo, Vuelve Activar el TLS
|
||
|
|
Para Validar la Configuracion de tu certificao"
|
||
|
|
msg -bar3
|
||
|
|
echo -e "INGRESE LINK Online en GitHub, o VPS \n"
|
||
|
|
read -p "Pega tu Link : " url1
|
||
|
|
wget -q -O $backdir/BakcOnline.tar $url1 && echo -e "\033[1;31m- \033[1;32mFile Exito!" && restore || echo -e "\033[1;31m- \033[1;31mFile Fallo" && sleep 2
|
||
|
|
;;
|
||
|
|
7)
|
||
|
|
bakc;;
|
||
|
|
0) break;;
|
||
|
|
*) blanco "opcion incorrecta..." && sleep 2;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
backup() {
|
||
|
|
unset fecha
|
||
|
|
unset hora
|
||
|
|
unset tmp
|
||
|
|
unset back
|
||
|
|
unset cer
|
||
|
|
unset key
|
||
|
|
#fecha=`date +%d-%m-%y-%R`
|
||
|
|
fecha=`date +%d-%m-%y`
|
||
|
|
hora=`date +%R`
|
||
|
|
tmp="$backdir/tmp" && [[ ! -d ${tmp} ]] && mkdir ${tmp}
|
||
|
|
back="$backdir/troj___${fecha}___${hora}.tar"
|
||
|
|
[[ -e /etc/trojan/fullchain.cer ]] && cer="/etc/trojan/fullchain.cer"
|
||
|
|
[[ -e /etc/trojan/private.key ]] && key="/etc/trojan/private.key"
|
||
|
|
|
||
|
|
cp $user_conf $tmp
|
||
|
|
cp $config $tmp
|
||
|
|
[[ ! $cer = null ]] && [[ -e $cer ]] && cp $cer $tmp
|
||
|
|
[[ ! $key = null ]] && [[ -e $cer ]] && cp $key $tmp
|
||
|
|
|
||
|
|
cd $tmp
|
||
|
|
tar -cpf $back *
|
||
|
|
cp $back /var/www/html/trojanBack.tar && echo -e "
|
||
|
|
Descargarlo desde cualquier sitio con acceso WEB
|
||
|
|
LINK : http://$(wget -qO- ifconfig.me):81/trojanBack.tar \033[0m
|
||
|
|
-------------------------------------------------------"
|
||
|
|
read -p "ENTER PARA CONTINUAR"
|
||
|
|
rm -rf $tmp
|
||
|
|
}
|
||
|
|
|
||
|
|
trojan()
|
||
|
|
{
|
||
|
|
wget -q https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango.sh; chmod +x trojango.sh; ./trojango.sh
|
||
|
|
rm -f trojango.sh
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
install_ini () {
|
||
|
|
add-apt-repository universe
|
||
|
|
apt update -y; apt upgrade -y
|
||
|
|
clear
|
||
|
|
echo -e "$BARRA"
|
||
|
|
echo -e "\033[92m -- INSTALANDO PAQUETES NECESARIOS -- "
|
||
|
|
echo -e "$BARRA"
|
||
|
|
#bc
|
||
|
|
[[ $(dpkg --get-selections|grep -w "bc"|head -1) ]] || apt-get install bc -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "bc"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "bc"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install bc................... $ESTATUS "
|
||
|
|
#jq
|
||
|
|
[[ $(dpkg --get-selections|grep -w "jq"|head -1) ]] || apt-get install jq -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "jq"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "jq"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install jq................... $ESTATUS "
|
||
|
|
#curl
|
||
|
|
[[ $(dpkg --get-selections|grep -w "curl"|head -1) ]] || apt-get install curl -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "curl"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "curl"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install curl................. $ESTATUS "
|
||
|
|
#npm
|
||
|
|
[[ $(dpkg --get-selections|grep -w "npm"|head -1) ]] || apt-get install npm -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "npm"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "npm"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install npm.................. $ESTATUS "
|
||
|
|
#nodejs
|
||
|
|
chekKEY &> /dev/null 2>&1
|
||
|
|
[[ $(dpkg --get-selections|grep -w "nodejs"|head -1) ]] || apt-get install nodejs -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "nodejs"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "nodejs"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install nodejs............... $ESTATUS "
|
||
|
|
#socat
|
||
|
|
[[ $(dpkg --get-selections|grep -w "socat"|head -1) ]] || apt-get install socat -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "socat"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "socat"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install socat................ $ESTATUS "
|
||
|
|
#netcat
|
||
|
|
[[ $(dpkg --get-selections|grep -w "netcat"|head -1) ]] || apt-get install netcat -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "netcat"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "netcat"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install netcat............... $ESTATUS "
|
||
|
|
#netcat-traditional
|
||
|
|
[[ $(dpkg --get-selections|grep -w "netcat-traditional"|head -1) ]] || apt-get install netcat-traditional -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "netcat-traditional"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "netcat-traditional"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install netcat-traditional... $ESTATUS "
|
||
|
|
#net-tools
|
||
|
|
[[ $(dpkg --get-selections|grep -w "net-tools"|head -1) ]] || apt-get net-tools -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "net-tools"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "net-tools"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install net-tools............ $ESTATUS "
|
||
|
|
#cowsay
|
||
|
|
[[ $(dpkg --get-selections|grep -w "cowsay"|head -1) ]] || apt-get install cowsay -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "cowsay"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "cowsay"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install cowsay............... $ESTATUS "
|
||
|
|
#figlet
|
||
|
|
[[ $(dpkg --get-selections|grep -w "figlet"|head -1) ]] || apt-get install figlet -y &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "figlet"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "figlet"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install figlet............... $ESTATUS "
|
||
|
|
#lolcat
|
||
|
|
apt-get install lolcat -y &>/dev/null
|
||
|
|
sudo gem install lolcat &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "lolcat"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
|
||
|
|
[[ $(dpkg --get-selections|grep -w "lolcat"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
|
||
|
|
echo -e "\033[97m # apt-get install lolcat............... $ESTATUS "
|
||
|
|
echo -e "$BARRA"
|
||
|
|
echo -e "\033[92m La instalacion de paquetes necesarios a finalizado"
|
||
|
|
echo -e "$BARRA"
|
||
|
|
echo -e "\033[97m Si la instalacion de paquetes tiene fallas"
|
||
|
|
echo -ne "\033[97m Puede intentar de nuevo [s/n]: "
|
||
|
|
read inst
|
||
|
|
[[ $inst = @(s|S|y|Y) ]] && install_ini
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
changeCERT () {
|
||
|
|
clear&&clear
|
||
|
|
unset opcion
|
||
|
|
dataCERT=$(cat $config | jq -r .ssl.cert)
|
||
|
|
dataKEY=$(cat $config | jq -r .ssl.key)
|
||
|
|
msg -bar3 && echo ""
|
||
|
|
echo -e " INGRESO DE RUTA DE CERTIFICADO SSL VALIDO ACTUAL" && echo ""
|
||
|
|
echo -e " DATA CRT : ${dataCERT}" && echo "" && echo -e " DATA CRT : ${dataKEY}" && echo "" && msg -bar3 && echo -e ""
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
echo -e " DESEAS CAMBIAR RUTA DE TU CERTIFICADO SSL ? "
|
||
|
|
read -p " [SI / NO ] :" opcion
|
||
|
|
case $opcion in
|
||
|
|
0)break ;;
|
||
|
|
[Yy]|[Ss])
|
||
|
|
echo -e " A CONTINUACION INGRESE SUS NUEVAS RUTAS DE CERTIFICADO"
|
||
|
|
echo -e " DEFAULT ( /data/cert.crt && /data/cert.key ) ." && echo ""
|
||
|
|
read -p "$(echo -e " DATA CRT :")" -e -i "/data/cert.crt" newdataCERT
|
||
|
|
tput cuu1 && tput dl1
|
||
|
|
read -p "$(echo -e " DATA KEY :")" -e -i "/data/cert.key" newdataKEY
|
||
|
|
sed -i "s%${dataCERT}%${newdataCERT}%g" $config
|
||
|
|
sed -i "s%${dataKEY}%${newdataKEY}%g" $config
|
||
|
|
break
|
||
|
|
;;
|
||
|
|
[Nn]) cancelar && sleep 0.5 && break;;
|
||
|
|
*) echo -e "\n \033[1;49;37mSelecione (S) para si o (N) para no!\033[0m" && sleep 0.5 && continue
|
||
|
|
tput cuu1 && tput dl1
|
||
|
|
tput cuu1 && tput dl1
|
||
|
|
tput cuu1 && tput dl1
|
||
|
|
tput cuu1 && tput dl1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
changeSNI () {
|
||
|
|
clear&&clear
|
||
|
|
unset opcion
|
||
|
|
dataCERT=$(cat $config | jq -r .ssl.sni)
|
||
|
|
msg -bar3 && echo ""
|
||
|
|
echo -e " INGRESO INGRESA SNI VALIDO" && echo ""
|
||
|
|
echo -e " SNI : ${dataCERT}" && echo "" && msg -bar3 && echo -e ""
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
echo -e " DESEAS CAMBIAR SNI ? "
|
||
|
|
read -p " [SI / NO ] :" opcion
|
||
|
|
case $opcion in
|
||
|
|
0)break ;;
|
||
|
|
[Yy]|[Ss])
|
||
|
|
echo -e " A CONTINUACION INGRESE SU NUEVO SNI"
|
||
|
|
read -p "$(echo -e " SNI Defauld : ")" -e -i "ssl.whatsapp.net" newdataKEY
|
||
|
|
if sed -i "s%${dataCERT}%${newdataCERT}%g" $config ; then
|
||
|
|
echo -e " EXITO AL CAMBIAR TU SNI"
|
||
|
|
else
|
||
|
|
newdataKEY='"sni": "${newdataKEY}",'
|
||
|
|
sed -i "s%${dataCERT}%${newdataCERT}%g" $config
|
||
|
|
echo -e " ERROR AL MODIFICAR SNI"
|
||
|
|
fi
|
||
|
|
break
|
||
|
|
;;
|
||
|
|
[Nn]) cancelar && sleep 0.5 && break;;
|
||
|
|
*) echo -e "\n \033[1;49;37mSelecione (S) para si o (N) para no!\033[0m" && sleep 0.5 && continue
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
enon(){
|
||
|
|
echo "source <(curl -sSL https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/mod-trojan.sh)" > /bin/troj.sh
|
||
|
|
chmod +x /bin/troj.sh
|
||
|
|
clear
|
||
|
|
msg -bar3
|
||
|
|
blanco " Se ha agregado un autoejecutor en el Sector de Inicios Rapidos"
|
||
|
|
msg -bar3
|
||
|
|
blanco " Para Acceder al menu Rapido \n Utilize * troj.sh * !!!"
|
||
|
|
msg -bar3
|
||
|
|
echo -e " \033[4;31mNOTA importante\033[0m"
|
||
|
|
echo -e " \033[0;31mSi deseas desabilitar esta opcion, apagala"
|
||
|
|
echo -e " Y te recomiendo, no alterar nada en este menu, para"
|
||
|
|
echo -e " Evitar Errores Futuros"
|
||
|
|
echo -e " y causar problemas en futuras instalaciones.\033[0m"
|
||
|
|
msg -bar3
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
}
|
||
|
|
enoff(){
|
||
|
|
rm -f /bin/v2r.sh
|
||
|
|
msg -bar3
|
||
|
|
echo -e " \033[4;31mNOTA importante\033[0m"
|
||
|
|
echo -e " \033[0;31mSe ha Desabilitado el menu Rapido de troj.sh"
|
||
|
|
echo -e " Y te recomiendo, no alterar nada en este menu, para"
|
||
|
|
echo -e " Evitar Errores Futuros"
|
||
|
|
echo -e " y causar problemas en futuras instalaciones.\033[0m"
|
||
|
|
msg -bar3
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
}
|
||
|
|
|
||
|
|
enttrada () {
|
||
|
|
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
clear
|
||
|
|
msg -bar3
|
||
|
|
blanco " Ajustes e Entrasda Rapida de Menu TROJAN"
|
||
|
|
msg -bar3
|
||
|
|
col "1)" "Habilitar troj.sh, Como entrada Rapida"
|
||
|
|
col "2)" "Eliminar troj.sh, Como entrada Rapida"
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "Volver"
|
||
|
|
msg -bar3
|
||
|
|
blanco "opcion" 0
|
||
|
|
read opcion
|
||
|
|
|
||
|
|
[[ -z $opcion ]] && vacio && sleep 0.3 && break
|
||
|
|
[[ $opcion = 0 ]] && break
|
||
|
|
|
||
|
|
case $opcion in
|
||
|
|
1)enon;;
|
||
|
|
2)enoff;;
|
||
|
|
*) blanco " solo numeros de 0 a 2" && sleep 0.3;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
on_off_res(){
|
||
|
|
if [[ $(cat $trojdir/conf | grep "autBackup" | cut -d " " -f2) = "0" ]]; then
|
||
|
|
echo -e "\033[0;31m[off]"
|
||
|
|
else
|
||
|
|
echo -e "\033[1;92m[on]"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
blanco(){
|
||
|
|
[[ ! $2 = 0 ]] && {
|
||
|
|
echo -e "\033[1;37m$1\033[0m"
|
||
|
|
} || {
|
||
|
|
echo -ne " \033[1;37m$1:\033[0m "
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
verde(){
|
||
|
|
[[ ! $2 = 0 ]] && {
|
||
|
|
echo -e "\033[1;32m$1\033[0m"
|
||
|
|
} || {
|
||
|
|
echo -ne " \033[1;32m$1:\033[0m "
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
rojo(){
|
||
|
|
[[ ! $2 = 0 ]] && {
|
||
|
|
echo -e "\033[1;31m$1\033[0m"
|
||
|
|
} || {
|
||
|
|
echo -ne " \033[1;31m$1:\033[0m "
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
col(){
|
||
|
|
|
||
|
|
nom=$(printf '%-55s' "\033[0;92m${1} \033[0;31m ➣ \033[1;37m${2}")
|
||
|
|
echo -e " $nom\033[0;31m${3} \033[0;92m${4}\033[0m"
|
||
|
|
}
|
||
|
|
|
||
|
|
col2(){
|
||
|
|
|
||
|
|
echo -e " \033[1;91m$1\033[0m \033[1;37m$2\033[0m"
|
||
|
|
}
|
||
|
|
|
||
|
|
vacio(){
|
||
|
|
|
||
|
|
blanco "\n no se puede ingresar campos vacios..."
|
||
|
|
}
|
||
|
|
|
||
|
|
cancelar(){
|
||
|
|
|
||
|
|
echo -e "\n \033[3;49;31minstalacion cancelada...\033[0m"
|
||
|
|
}
|
||
|
|
|
||
|
|
continuar(){
|
||
|
|
echo -e " \033[3;49;32mEnter para continuar...\033[0m"
|
||
|
|
}
|
||
|
|
|
||
|
|
title2(){
|
||
|
|
_check=`lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" | grep trojan | awk '{print substr($9,3); }' > /tmp/trojan.txt && echo | cat /tmp/trojan.txt | tr '\n' ' ' > /etc/adm-lite/trojanports.txt && cat /etc/adm-lite/trojanports.txt` > /dev/null 2>&1
|
||
|
|
#trojanports=$(echo $trojanports | awk {'print $1'})
|
||
|
|
trojanports=$(cat $config | jq -r .local_port)
|
||
|
|
#_tconex=$(netstat -nap | grep "$trojanports" | grep trojan | grep ESTABLISHED| grep tcp6 | awk {'print $5'} | awk -F ":" '{print $1}' | sort | uniq | wc -l)
|
||
|
|
_tconex=$(netstat -nap | grep "$trojanports" | grep trojan | grep ESTABLISHED | awk {'print $5'} | awk -F ":" '{print $1}' | sort | uniq | wc -l)
|
||
|
|
v1=$(cat /etc/adm-lite/v-local.log)
|
||
|
|
v2=$(cat /bin/ejecutar/v-new.log)
|
||
|
|
#echo -e "\033[7;49;35m =====>>►► 🐲 Menu TROJAN ChumoGH💥VPS 🐲 ◄◄<<===== \033[0m"
|
||
|
|
msg -bar3
|
||
|
|
[[ $(uname -m 2> /dev/null) != x86_64 ]] && echo -e " CPU : ARM64 - BINARIO : trojan-go"
|
||
|
|
[[ ${v1} = ${v2} ]] && echo -e " \e[97m\033[1;44mPROYECT TROJAN BY @ChumoGH [$v1] \033[0m" || echo -e " \e[97m\033[1;44mProyecto Trojan by @ChumoGH [$v1] >> \033[1;92m[$v2] \033[0m"
|
||
|
|
echo -e " ${cor[2]} ${pPIniT} \033[1;37mIP: \033[1;31m$(wget -qO- ifconfig.me) ${cor[2]}${pPIniT} \033[1;37m"
|
||
|
|
[[ ! -z ${_check} ]] && echo -e " \e[97m\033[1;44mPUERTO ACTIVO :\033[0m \033[3;32m$trojanports\033[0m \e[97m\033[1;44m ACTIVOS:\033[0m \033[3;32m\e[97m\033[1;41m $_tconex " || echo -e " \e[97m\033[1;41m SERVICIO TROJAN NO INICIADO \033[3;32m"
|
||
|
|
}
|
||
|
|
|
||
|
|
title(){
|
||
|
|
msg -bar3
|
||
|
|
|
||
|
|
echo -e " >>>>>>> Fecha Actual $(date '+%d-%m-%Y') <<<<<<<<<<<"
|
||
|
|
blanco "$1"
|
||
|
|
msg -bar3
|
||
|
|
}
|
||
|
|
|
||
|
|
userDat(){
|
||
|
|
#echo -e " >>>>>>> Fecha Actual $(date '+%d-%m-%Y') <<<<<<<<<<<"
|
||
|
|
blanco " N° Usuarios fech exp dias"
|
||
|
|
msg -bar3
|
||
|
|
}
|
||
|
|
|
||
|
|
log_traff () {
|
||
|
|
[[ $log0 -le 1 ]] && restroj && let log0++ && clear
|
||
|
|
msg -bar3
|
||
|
|
echo -e ""
|
||
|
|
echo -e " ESPERANDO A LA VERIFICACION DE IPS Y USUARIOS "
|
||
|
|
echo -e " ESPERE UN MOMENTO PORFAVOR $log0"
|
||
|
|
echo -e ""
|
||
|
|
msg -bar3
|
||
|
|
fun_bar
|
||
|
|
msg -bar3
|
||
|
|
sleep 5s
|
||
|
|
clear&&clear
|
||
|
|
title2
|
||
|
|
msg -bar3
|
||
|
|
IP_tconex=$(netstat -nap | grep "$trojanports" | grep trojan | grep ESTABLISHED | awk {'print $5'} | awk -F ":" '{print $1}' | sort | uniq)
|
||
|
|
#IP_tconex=$(netstat -nap | grep "$trojanports"| grep trojan | grep ESTABLISHED | grep tcp6 | awk {'print $5'}| awk -F ":" '{print $1}' | sort | uniq)
|
||
|
|
nick="$(cat $config | grep ',"')"
|
||
|
|
#users="$(echo $nick|sed -e 's/[^a-z0-9 -]//ig')"
|
||
|
|
users="$(cat $config | jq -r .password[])"
|
||
|
|
n=1
|
||
|
|
[[ -z $IP_tconex ]] && echo -e " NO HAY USUARIOS CONECTADOS!" && return
|
||
|
|
for i in $IP_tconex
|
||
|
|
do
|
||
|
|
USERauth=$(cat $HOME/server.log | grep $i | cut -d: -f4 | grep authenticated |awk '{print $4}'| sort | uniq)
|
||
|
|
#PORTauth=$(cat $HOME/server.log | grep $i | cut -d: -f4 | grep authenticated |awk '{print $1}')
|
||
|
|
#PORTdisco=$(cat $HOME/server.log | grep $i | cut -d: -f4 | grep authenticated |awk '{print $1}')
|
||
|
|
# echo -e " $n) $USERauth - $i "
|
||
|
|
Users+="$USERauth\n"
|
||
|
|
#let n++
|
||
|
|
done
|
||
|
|
#echo -e "$Users"
|
||
|
|
echo -e " N) USER | CONEXIONES "|column -t -s '|'
|
||
|
|
for U in $users
|
||
|
|
do
|
||
|
|
CConT=$(echo -e "$Users" | grep $U |wc -l)
|
||
|
|
[[ $CConT = 0 ]] && continue
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${U}"|cut -d'|' -f1)"
|
||
|
|
UConc+=" $n) $Usr |$CConT\n"
|
||
|
|
let n++
|
||
|
|
done
|
||
|
|
echo -e "$UConc"|column -t -s '|'
|
||
|
|
msg -bar3
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
#tail -f /usr/local/etc/trojan/config.json
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
fun_bar () {
|
||
|
|
#==comando a ejecutar==
|
||
|
|
comando="$1"
|
||
|
|
#==interfas==
|
||
|
|
in=' ['
|
||
|
|
en=' ] '
|
||
|
|
full_in="➛"
|
||
|
|
full_en='100%'
|
||
|
|
bar=("--------------------"
|
||
|
|
"=-------------------"
|
||
|
|
"]=------------------"
|
||
|
|
"[-]=-----------------"
|
||
|
|
"=[-]=----------------"
|
||
|
|
"-=[-]=---------------"
|
||
|
|
"--=[-]=--------------"
|
||
|
|
"---=[-]=-------------"
|
||
|
|
"----=[-]=------------"
|
||
|
|
"-----=[-]=-----------"
|
||
|
|
"------=[-]=----------"
|
||
|
|
"-------=[-]=---------"
|
||
|
|
"--------=[-]=--------"
|
||
|
|
"---------=[-]=-------"
|
||
|
|
"----------=[-]=------"
|
||
|
|
"-----------=[-]=-----"
|
||
|
|
"------------=[-]=----"
|
||
|
|
"-------------=[-]=---"
|
||
|
|
"--------------=[-]=--"
|
||
|
|
"---------------=[-]=-"
|
||
|
|
"----------------=[-]="
|
||
|
|
"-----------------=[-]"
|
||
|
|
"------------------=["
|
||
|
|
"-------------------="
|
||
|
|
"------------------=["
|
||
|
|
"-----------------=[-]"
|
||
|
|
"----------------=[-]="
|
||
|
|
"---------------=[-]=-"
|
||
|
|
"--------------=[-]=--"
|
||
|
|
"-------------=[-]=---"
|
||
|
|
"------------=[-]=----"
|
||
|
|
"-----------=[-]=-----"
|
||
|
|
"----------=[-]=------"
|
||
|
|
"---------=[-]=-------"
|
||
|
|
"--------=[-]=--------"
|
||
|
|
"-------=[-]=---------"
|
||
|
|
"------=[-]=----------"
|
||
|
|
"-----=[-]=-----------"
|
||
|
|
"----=[-]=------------"
|
||
|
|
"---=[-]=-------------"
|
||
|
|
"--=[-]=--------------"
|
||
|
|
"-=[-]=---------------"
|
||
|
|
"=[-]=----------------"
|
||
|
|
"[-]=-----------------"
|
||
|
|
"]=------------------"
|
||
|
|
"=-------------------"
|
||
|
|
"--------------------");
|
||
|
|
#==color==
|
||
|
|
in="\033[1;33m$in\033[0m"
|
||
|
|
en="\033[1;33m$en\033[0m"
|
||
|
|
full_in="\033[1;31m$full_in"
|
||
|
|
full_en="\033[1;32m$full_en\033[0m"
|
||
|
|
|
||
|
|
_=$(
|
||
|
|
$comando > /dev/null 2>&1
|
||
|
|
) & > /dev/null
|
||
|
|
pid=$!
|
||
|
|
while [[ -d /proc/$pid ]]; do
|
||
|
|
for i in "${bar[@]}"; do
|
||
|
|
echo -ne "\r $in"
|
||
|
|
echo -ne "ESPERE $en $in \033[1;31m$i"
|
||
|
|
echo -ne " $en"
|
||
|
|
sleep 0.1
|
||
|
|
done
|
||
|
|
done
|
||
|
|
echo -e " $full_in $full_en"
|
||
|
|
sleep 0.1s
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
add_user(){
|
||
|
|
autoDel
|
||
|
|
unset seg
|
||
|
|
seg=$(date +%s)
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
clear
|
||
|
|
nick="$(cat $config | grep ',"')"
|
||
|
|
users="$(cat $config | jq -r .password[])"
|
||
|
|
title " CREAR USUARIO Trojan"
|
||
|
|
userDat
|
||
|
|
n=0
|
||
|
|
for i in $users
|
||
|
|
do
|
||
|
|
unset DateExp
|
||
|
|
unset seg_exp
|
||
|
|
unset exp
|
||
|
|
|
||
|
|
[[ $i = chumoghscript ]] && {
|
||
|
|
i="default"
|
||
|
|
a='*'
|
||
|
|
DateExp=" unlimit"
|
||
|
|
col "$a)" "$i" "$DateExp"
|
||
|
|
} || {
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f1)"
|
||
|
|
DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
|
||
|
|
seg_exp=$(date +%s --date="$DateExp")
|
||
|
|
exp="[$(($(($seg_exp - $seg)) / 86400))]"
|
||
|
|
|
||
|
|
col "$n)" "${Usr}" "$DateExp" "$exp"
|
||
|
|
}
|
||
|
|
let n++
|
||
|
|
done
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "VOLVER"
|
||
|
|
msg -bar3
|
||
|
|
blanco "ESCRIBE TU USUARIO :" 0
|
||
|
|
read usser
|
||
|
|
usser=$(echo ${usser} |sed -e's/[^0-9a-z]//ig')
|
||
|
|
[[ -z $usser ]] && vacio && sleep 0.3 && continue
|
||
|
|
[[ $usser = 0 ]] && break
|
||
|
|
[[ -z $(echo "$users" | grep -w $usser) ]] && {
|
||
|
|
new_id=$(uuidgen)
|
||
|
|
msg -bar3
|
||
|
|
blanco "DURACION EN DIAS" 0
|
||
|
|
read dias
|
||
|
|
dias=$(echo ${dias} |sed -e's/[^0-9]//ig')
|
||
|
|
espacios=$(echo "$usser" | tr -d '[[:space:]]')
|
||
|
|
usser=$espacios
|
||
|
|
mv $config $temp
|
||
|
|
movetm=$(echo -e "$new_id" | sed 's/^/,"/;s/$/"/')
|
||
|
|
sed "10i\ ${movetm}" $temp > $config
|
||
|
|
#echo -e "$opcion" | sed 's/^/,"/;s/$/"/'
|
||
|
|
sed -i "/${usser}/d" $user_conf
|
||
|
|
echo "$usser | ${new_id} | $(date '+%y-%m-%d' -d " +$dias days")" >> $user_conf
|
||
|
|
chmod 777 $config
|
||
|
|
rm $temp
|
||
|
|
clear
|
||
|
|
msg -bar3
|
||
|
|
blanco " Usuario $usser creado con exito"
|
||
|
|
msg -bar3
|
||
|
|
autoDel
|
||
|
|
restroj
|
||
|
|
} || echo " USUARIO YA EXISTE " && sleep 0.5s
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
renew(){
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
unset user
|
||
|
|
clear
|
||
|
|
title " RENOVAR USUARIOS"
|
||
|
|
userDat
|
||
|
|
userEpx=$(cut -d "|" -f2 $user_conf)
|
||
|
|
n=1
|
||
|
|
for i in $userEpx
|
||
|
|
do
|
||
|
|
DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
|
||
|
|
seg_exp=$(date +%s --date="$DateExp")
|
||
|
|
[[ "$seg" -gt "$seg_exp" ]] && {
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f1)"
|
||
|
|
col "$n)" "$Usr" "$DateExp" "\033[0;31m[Exp]"
|
||
|
|
uid[$n]="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f2|tr -d '[[:space:]]')"
|
||
|
|
user[$n]=$Usr
|
||
|
|
let n++
|
||
|
|
}
|
||
|
|
done
|
||
|
|
[[ -z ${user[1]} ]] && blanco " No hay expirados"
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "VOLVER"
|
||
|
|
msg -bar3
|
||
|
|
blanco "NUMERO DE USUARIO A RENOVAR" 0
|
||
|
|
read opcion
|
||
|
|
|
||
|
|
[[ -z $opcion ]] && vacio && sleep 0.3 && continue
|
||
|
|
[[ $opcion = 0 ]] && break
|
||
|
|
|
||
|
|
[[ ! $opcion =~ $numero ]] && {
|
||
|
|
blanco " solo numeros apartir de 1"
|
||
|
|
sleep 0.3
|
||
|
|
} || {
|
||
|
|
[[ $opcion>=${n} ]] && {
|
||
|
|
let n--
|
||
|
|
blanco "solo numero entre 1 y $n"
|
||
|
|
sleep 0.3
|
||
|
|
} || {
|
||
|
|
blanco "DURACION EN DIAS" 0
|
||
|
|
read dias
|
||
|
|
mv $config $temp
|
||
|
|
movetm=$(echo -e "${uid[$opcion]}" | sed 's/^/,"/;s/$/"/')
|
||
|
|
sed "10i\ $movetm" $temp > $config
|
||
|
|
sed -i "/${uid[$opcion]}/d" $user_conf
|
||
|
|
echo "${user[$opcion]} | ${uid[$opcion]} | $(date '+%y-%m-%d' -d " +$dias days")" >> $user_conf
|
||
|
|
chmod 777 $config
|
||
|
|
rm -f $temp
|
||
|
|
clear
|
||
|
|
msg -bar3
|
||
|
|
blanco " Usuario > ${user[$opcion]} renovado hasta $(date '+%y-%m-%d' -d " +$dias days")"
|
||
|
|
sleep 5s
|
||
|
|
}
|
||
|
|
}
|
||
|
|
done
|
||
|
|
restroj
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
dell_user(){
|
||
|
|
unset seg
|
||
|
|
seg=$(date +%s)
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
clear
|
||
|
|
nick="$(cat $config | grep ',"')"
|
||
|
|
users="$(cat $config | jq -r .password[])"
|
||
|
|
title " ELIMINAR USUARIO TROJAN"
|
||
|
|
userDat
|
||
|
|
n=0
|
||
|
|
for i in $users
|
||
|
|
do
|
||
|
|
userd[$n]=$i
|
||
|
|
unset DateExp
|
||
|
|
unset seg_exp
|
||
|
|
unset exp
|
||
|
|
|
||
|
|
[[ $i = chumoghscript ]] && {
|
||
|
|
i="default"
|
||
|
|
a='*'
|
||
|
|
DateExp=" unlimit"
|
||
|
|
col "$a)" "$i" "$DateExp"
|
||
|
|
} || {
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f1)"
|
||
|
|
DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
|
||
|
|
seg_exp=$(date +%s --date="$DateExp")
|
||
|
|
exp="[$(($(($seg_exp - $seg)) / 86400))]"
|
||
|
|
|
||
|
|
col "$n)" "${Usr}" "$DateExp" "$exp"
|
||
|
|
}
|
||
|
|
p=$n
|
||
|
|
let n++
|
||
|
|
done
|
||
|
|
userEpx=$(cut -d "|" -f2 $user_conf)
|
||
|
|
for i in $userEpx
|
||
|
|
do
|
||
|
|
DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
|
||
|
|
seg_exp=$(date +%s --date="$DateExp")
|
||
|
|
[[ "$seg" -gt "$seg_exp" ]] && {
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f1)"
|
||
|
|
col "$n)" "$Usr" "$DateExp" "\033[0;31m[Exp]"
|
||
|
|
expUser[$n]=$i
|
||
|
|
let n++
|
||
|
|
}
|
||
|
|
done
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "VOLVER"
|
||
|
|
msg -bar3
|
||
|
|
blanco "NUMERO DE USUARIO A ELIMINAR" 0
|
||
|
|
read opcion
|
||
|
|
[[ -z $opcion ]] && vacio && sleep 0.3 && continue
|
||
|
|
[[ $opcion = 0 ]] && break
|
||
|
|
|
||
|
|
[[ ! $opcion =~ $numero ]] && {
|
||
|
|
blanco " solo numeros apartir de 1"
|
||
|
|
sleep 0.3
|
||
|
|
} || {
|
||
|
|
let n--
|
||
|
|
[[ $opcion>=${n} ]] && {
|
||
|
|
blanco "solo numero entre 1 y $n"
|
||
|
|
sleep 0.3
|
||
|
|
} || {
|
||
|
|
|
||
|
|
[[ $opcion>=${p} ]] && {
|
||
|
|
sed -i "/${expUser[$opcion]}/d" $user_conf
|
||
|
|
} || {
|
||
|
|
mv $config $temp
|
||
|
|
sed -i "/${expUser[$opcion]}/d" $user_conf
|
||
|
|
sed "/${userd[$opcion]}/ d" $temp > $config
|
||
|
|
chmod 777 $config
|
||
|
|
rm $temp
|
||
|
|
clear
|
||
|
|
msg -bar3
|
||
|
|
blanco " Usuario ${userd[$opcion]}${expUser[$opcion]} eliminado"
|
||
|
|
msg -bar3
|
||
|
|
sleep 0.5s
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
done
|
||
|
|
restroj
|
||
|
|
}
|
||
|
|
|
||
|
|
bakc() {
|
||
|
|
clear
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
clear
|
||
|
|
#col "5)" "\033[1;33mCONFIGURAR Trojan"
|
||
|
|
msg -bar3
|
||
|
|
col "1)" "\033[1;33mRestaurar Copia"
|
||
|
|
msg -bar3
|
||
|
|
col "2)" "\033[1;33mCrear Copia"
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
|
||
|
|
msg -bar3
|
||
|
|
blanco "opcion" 0
|
||
|
|
read opcion
|
||
|
|
case $opcion in
|
||
|
|
1)[[ -e config.json ]] && cp config.json /usr/local/etc/trojan/config.json || echo "No existe Copia";;
|
||
|
|
2)[[ -e /usr/local/etc/trojan/config.json ]] && cp /usr/local/etc/trojan/config.json config.json || echo "No existe Copia";;
|
||
|
|
0) break;;
|
||
|
|
*) blanco "\n selecione una opcion del 0 al 2" && sleep 0.3;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
reintro() {
|
||
|
|
clear
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
clear
|
||
|
|
#col "5)" "\033[1;33mCONFIGURAR Trojan"
|
||
|
|
msg -bar3
|
||
|
|
col "1)" "\033[1;33mReinstalar Servicio"
|
||
|
|
msg -bar3
|
||
|
|
col "2)" "\033[1;33mReiniciar Servicio"
|
||
|
|
msg -bar3
|
||
|
|
col "3)" "\033[1;33mEditar Manual ( nano )"
|
||
|
|
msg -bar3
|
||
|
|
col "4)" "\033[1;33mREGISTRAR DOMINIO "
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
|
||
|
|
msg -bar3
|
||
|
|
blanco "opcion" 0
|
||
|
|
read opcion
|
||
|
|
case $opcion in
|
||
|
|
1)
|
||
|
|
trojan
|
||
|
|
;;
|
||
|
|
2)
|
||
|
|
[[ -e /usr/local/etc/trojan/config.json ]] && {
|
||
|
|
title "Fichero Interno Configurado"
|
||
|
|
restroj
|
||
|
|
} || echo -e "Servicio No instalado Aun"
|
||
|
|
;;
|
||
|
|
3)
|
||
|
|
nano /usr/local/etc/trojan/config.json
|
||
|
|
;;
|
||
|
|
4)
|
||
|
|
dmn=$(echo "$(ls /root/.acme.sh | grep '_ecc')" | sed 's/_ecc//')
|
||
|
|
echo -e " INGRESA TU DOMINIO REGISTRADO EN TU CERTIFICADO "
|
||
|
|
echo -e " + OJO +"
|
||
|
|
echo -e " Si validaste tu certificado con dominio ACME"
|
||
|
|
echo -e " Se tomara tu dominio automatico"
|
||
|
|
read -p " DIGITA TU DOMINIO : " -e -i $dmn domain
|
||
|
|
echo "$domain" > /etc/trojan/domain
|
||
|
|
;;
|
||
|
|
0) break;;
|
||
|
|
*) blanco "\n selecione una opcion del 0 al 3" && sleep 0.3;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
|
||
|
|
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
}
|
||
|
|
|
||
|
|
cattro () {
|
||
|
|
|
||
|
|
clear
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
clear
|
||
|
|
#col "5)" "\033[1;33mCONFIGURAR Trojan"
|
||
|
|
msg -bar3
|
||
|
|
col "1)" "\033[1;33mMostrar fichero de CONFIG "
|
||
|
|
msg -bar3
|
||
|
|
col "2)" "\033[1;33mEditar Config Manual ( Comando nano )"
|
||
|
|
msg -bar3
|
||
|
|
col "3)" "\033[1;33m Cambiar RUTA CERTIFICADO"
|
||
|
|
msg -bar3
|
||
|
|
col "4)" "\033[1;33m CAMBIAR SNI INTERNO"
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
|
||
|
|
msg -bar3
|
||
|
|
blanco "opcion" 0
|
||
|
|
read opcion
|
||
|
|
case $opcion in
|
||
|
|
1)
|
||
|
|
title "Fichero Interno Configurado"
|
||
|
|
cat /usr/local/etc/trojan/config.json
|
||
|
|
blanco "Fin Fichero "
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
;;
|
||
|
|
2)
|
||
|
|
[[ -e /usr/local/etc/trojan/config.json ]] && {
|
||
|
|
title "Fichero Interno Configurado"
|
||
|
|
nano /usr/local/etc/trojan/config.json
|
||
|
|
restroj
|
||
|
|
} || echo -e "Servicio No instalado Aun"
|
||
|
|
;;
|
||
|
|
3)
|
||
|
|
changeCERT
|
||
|
|
restroj
|
||
|
|
;;
|
||
|
|
4)
|
||
|
|
changeSNI
|
||
|
|
restroj
|
||
|
|
;;
|
||
|
|
0) break;;
|
||
|
|
*) blanco "\n selecione una opcion del 0 al 2" && sleep 0.3;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
continuar
|
||
|
|
}
|
||
|
|
|
||
|
|
log_ACCESS () {
|
||
|
|
clear&&clear
|
||
|
|
tail -f /root/server.log
|
||
|
|
continuar
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
view_user(){
|
||
|
|
unset opcion
|
||
|
|
unset seg
|
||
|
|
seg=$(date +%s)
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
|
||
|
|
clear
|
||
|
|
nick="$(cat $config | grep ',"')"
|
||
|
|
users="$(cat $config | jq -r .password[])"
|
||
|
|
title " VER USUARIO TROJAN"
|
||
|
|
userDat
|
||
|
|
|
||
|
|
|
||
|
|
n=1
|
||
|
|
for i in $users
|
||
|
|
do
|
||
|
|
unset DateExp
|
||
|
|
unset seg_exp
|
||
|
|
unset exp
|
||
|
|
|
||
|
|
[[ $i = chumoghscript ]] && {
|
||
|
|
Usr="Admin"
|
||
|
|
DateExp=" Ilimitado"
|
||
|
|
} || {
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f1)"
|
||
|
|
DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
|
||
|
|
seg_exp=$(date +%s --date="$DateExp")
|
||
|
|
exp="[$(($(($seg_exp - $seg)) / 86400))]"
|
||
|
|
}
|
||
|
|
|
||
|
|
col "$n)" "${Usr}" "$DateExp" "$exp"
|
||
|
|
let n++
|
||
|
|
done
|
||
|
|
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "VOLVER"
|
||
|
|
msg -bar3
|
||
|
|
blanco "VER DATOS DEL USUARIO" 0
|
||
|
|
read opcion
|
||
|
|
[[ -z $opcion ]] && vacio && sleep 0.3 && continue
|
||
|
|
[[ $opcion = 0 ]] && break
|
||
|
|
n=1
|
||
|
|
unset i
|
||
|
|
for i in $users
|
||
|
|
do
|
||
|
|
unset DateExp
|
||
|
|
unset seg_exp
|
||
|
|
unset exp
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f1)"
|
||
|
|
DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
|
||
|
|
seg_exp=$(date +%s --date="$DateExp")
|
||
|
|
exp="[$(($(($seg_exp - $seg)) / 86400))]"
|
||
|
|
#col "$n)" "$i" "$DateExp" "$exp"
|
||
|
|
#[[ $n = $opcion ]] && trojanpass=$i && dataEX=$DateExp && dEX=$exp
|
||
|
|
#[[ $n = $opcion ]] && trojanpass=$i && dataEX=$DateExp && dEX=$exp
|
||
|
|
let n++
|
||
|
|
done
|
||
|
|
let opcion--
|
||
|
|
addip=$(wget -qO- ifconfig.me)
|
||
|
|
host=$(cat $config | jq -r .ssl.sni)
|
||
|
|
trojanport=$(cat $config | jq -r .local_port)
|
||
|
|
UUID=$(cat $config | jq -r .password[$opcion])
|
||
|
|
DateExp="$(cat ${user_conf}|grep -w "${UUID}"|cut -d'|' -f3)"
|
||
|
|
seg_exp=$(date +%s --date="$DateExp")
|
||
|
|
exp="[$(($(($seg_exp - $seg)) / 86400))]"
|
||
|
|
Usr="$(cat ${user_conf}|grep -w "${UUID}"|cut -d'|' -f1)"
|
||
|
|
[[ $host = null ]] && read -p " Host / SNI : " host
|
||
|
|
[[ -z $host ]] && host="null"
|
||
|
|
clear&&clear
|
||
|
|
blanco $barra
|
||
|
|
blanco " TROJAN LINK CONFIG"
|
||
|
|
blanco $barra
|
||
|
|
col "$opcion)" "${Usr}" "$DateExp" "$exp" #"${UUID}"
|
||
|
|
trojan_conf
|
||
|
|
blanco $barra
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
trojan_conf (){
|
||
|
|
[[ -e /etc/trojan/domain ]] && domain=$(cat < /etc/trojan/domain)
|
||
|
|
msg -bar3
|
||
|
|
col2 " Remarks : " "${Usr}"
|
||
|
|
[[ -z $domain ]] || col2 " DOMAIN : " "$domain"
|
||
|
|
col2 " IP-Address: " "$addip"
|
||
|
|
col2 " Port : " "$trojanport"
|
||
|
|
col2 " Password : " "$UUID"
|
||
|
|
[[ $(cat $config | jq -r .websocket.enabled) = "true" ]] && col2 " NetWork : " "WS/TCP" || col2 " NetWork : " "TCP"
|
||
|
|
[[ ! -z $host ]] && col2 " Host/SNI : " "$host"
|
||
|
|
msg -bar3
|
||
|
|
echo " CONFIG TCP NATIVA"
|
||
|
|
echo -e "\033[3;32m trojan://$(echo $UUID@$addip:$trojanport?sni=$host#"${Usr}" )\033[3;32m"
|
||
|
|
msg -bar3
|
||
|
|
echo -ne "$(msg -verd "") $(msg -verm2 " ") "&& msg -bra "\033[1;41mEn APPS como HTTP Inyector,CUSTOM,Trojan,etc"
|
||
|
|
[[ $(cat $config | jq -r .websocket.enabled) = "true" ]] && echo -e "\033[3;32m trojan://$UUID@$IP:$trojanport?path=%2F&security=tls&type=ws&sni=$host\033[3;32m" || echo -e "\033[3;32m trojan://$(echo $UUID@$addip:$trojanport?sni=$host#"${Usr}" )\033[3;32m"
|
||
|
|
msg -bar3
|
||
|
|
[[ -z $domain ]] || echo -e "\033[3;32m trojan://$(echo $UUID@$domain:$trojanport?sni=$host#"${Usr}" )\033[3;32m"
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
main(){
|
||
|
|
[[ ! -e $config ]] && {
|
||
|
|
clear
|
||
|
|
msg -bar3
|
||
|
|
blanco " No se encontro ningun archovo de configracion Trojan"
|
||
|
|
msg -bar3
|
||
|
|
blanco " No instalo Trojan o esta usando\n una vercion diferente!!!"
|
||
|
|
msg -bar3
|
||
|
|
echo -e " \033[4;31mNOTA importante\033[0m"
|
||
|
|
echo -e " \033[0;31mSi esta usando una vercion Trojan diferente"
|
||
|
|
echo -e " y opta por cuntinuar usando este script."
|
||
|
|
echo -e " Este puede; no funcionar correctamente"
|
||
|
|
echo -e " y causar problemas en futuras instalaciones.\033[0m"
|
||
|
|
msg -bar3
|
||
|
|
continuar
|
||
|
|
read foo
|
||
|
|
}
|
||
|
|
while :
|
||
|
|
do
|
||
|
|
_usor=$(printf '%-8s' "$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')")
|
||
|
|
_usop=$(printf '%-1s' "$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')")
|
||
|
|
[[ -e /bin/troj.sh ]] && enrap="\033[1;92m[ ACT ]" || enrap="\033[0;31m[ DESC ]"
|
||
|
|
[[ -e $configLOCK ]] && _v2LOCK="$(cat $configLOCK|wc -l)" || _v2LOCK=0
|
||
|
|
clear
|
||
|
|
title2
|
||
|
|
title " Ram: \033[1;32m$_usor \033[0;31m<<< \033[1;37mMENU Trojan \033[0;31m>>> \033[1;37mCPU: \033[1;32m$_usop"
|
||
|
|
col "1)" "CREAR NUEVO USUARIO "
|
||
|
|
col "2)" "\033[0;92mRENOVAR UN USUARIO "
|
||
|
|
col "3)" "\033[0;31mREMOVER UN USUARIO "
|
||
|
|
col "4)" "VER USUARIOS REGISTRADOS \033[1;32m( $(cat $user_conf | wc -l) )"
|
||
|
|
col "5)" "VER USUARIOS CONECTADOS "
|
||
|
|
col "b)" "LOCK/UNLOCK USUUARIO $_v2LOCK"
|
||
|
|
msg -bar3
|
||
|
|
col "6)" "\033[1;33mENTRAR CON \033[1;31mtroj.sh $enrap"
|
||
|
|
msg -bar3
|
||
|
|
col "7)" "\033[1;33mMostrar/Editar Fichero interno"
|
||
|
|
col "8)" "\033[1;33mMenu Avanzado Trojan"
|
||
|
|
col "9)" "\033[1;33mConf. Copias de Respaldo"
|
||
|
|
col "10)" "\033[1;33m LOG DE ACTIVIDAD"
|
||
|
|
msg -bar3
|
||
|
|
col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
|
||
|
|
msg -bar3
|
||
|
|
blanco "SELECCION : " 0
|
||
|
|
read opcion
|
||
|
|
|
||
|
|
case $opcion in
|
||
|
|
1)add_user;;
|
||
|
|
2)renew;;
|
||
|
|
3)dell_user;;
|
||
|
|
4)view_user;;
|
||
|
|
5)log_traff;;
|
||
|
|
6)enttrada;;
|
||
|
|
7)cattro;;
|
||
|
|
8)reintro;;
|
||
|
|
9)backups;;
|
||
|
|
10)log_ACCESS;;
|
||
|
|
0) break;;
|
||
|
|
*) blanco "\n selecione una opcion del 0 al 10" && sleep 0.3s;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
}
|
||
|
|
#while [[ $? -eq 0 ]]; do
|
||
|
|
[[ $1 = "--restart" ]] && restroj
|
||
|
|
#[[ $? -eq 0 ]] && main
|
||
|
|
#done
|
||
|
|
main
|
||
|
|
|