581 lines
25 KiB
Bash
Raw Permalink Normal View History

2025-05-26 15:48:09 -06:00
#!/bin/bash
#by @ChumoGH Oficial
#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 "
_apTT=$(netstat -tlpn | grep -w 80)
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
}
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 Install Trojan 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
}
}
#FUN_BAR
fun_bar () {
comando="$1"
_=$( $comando > /dev/null 2>&1 ) & > /dev/null
pid=$!
while [[ -d /proc/$pid ]]; do
echo -ne " \033[1;33m["
for((i=0; i<20; i++)); do
echo -ne "\033[1;31m##"
sleep 0.5
done
echo -ne "\033[1;33m]"
sleep 1s
echo tput cuu1 tput dl1
done
echo -e " \033[1;33m[\033[1;31m########################################\033[1;33m] - \033[1;32m100%\033[0m"
sleep 1s
}
selection_fun () {
chekKEY &> /dev/null 2>&1
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;31m <> OPCION : " >&2
read selection
tput cuu1 >&2 && tput dl1 >&2
done
echo $selection
}
source <(curl -sL https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/msg-bar/msg)
[[ -e /etc/trojan/user ]] && rm -f /etc/trojan/user
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}
config='/usr/local/etc/trojan/config.json'
car_cert () {
[[ -d /bin/ejecutar/cert ]] && rm -f /bin/ejecutar/cert/* || mkdir /bin/ejecutar/cert
[[ -e /etc/trojan/private.key ]] && echo -e "Ya Existe un certificado SSL Cargado \n Recuerde Cargar SU Certificado y Key del SSL " | pv -qL 25
msg -bar3
echo -e "Descarga el fichero URL del Certificado SSL "
echo -e $barra
echo -e " \033[4;31mNOTA importante\033[0m"
echo -e " \033[0;31mPara este Paso debes tener el URL del certificado Online"
echo -e " Si Aun no lo has hecho, Cancela este paso"
echo -e " Evitar Errores Futuros"
echo -e " y causar problemas en futuras instalaciones.\033[0m"
echo -e $barra
msg -bar3
echo -e "Ingrese Link del Fichero URL de tu ZIP con los Certificados "
msg -bar3
read -p " Pega tu Link : " urlm
cd /bin/ejecutar/cert
wget -O certificados.zip $urlm && echo -e "Descargando Fichero ZIP " || echo "Link de descarga Invalido"
msg -bar3
echo -ne "\033[3;49;32mZIPS Existentes : " && ls | grep zip
msg -bar3
unzip certificados.zip 1> /dev/null 2> /dev/null && echo -e "Descomprimiendo Ficheros descargados" || echo -e "Error al Descomprimir "
[[ -e private.key ]] && cat private.key > /etc/trojan/private.key && echo -e " Key del Certificado cargada Exitodamente" || echo "Claves Invalidas"
[[ -e certificate.crt && -e ca_bundle.crt ]] && cat certificate.crt ca_bundle.crt > /etc/trojan/fullchain.cer && echo -e " crt del Certificado cargada Exitodamente" || echo "Claves Invalidas"
rm -f private.key certificate.crt ca_bundle.crt certificados.zip 1> /dev/null 2> /dev/null && cd $HOME
}
troport () {
tittle
echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
msg -bar3
echo -ne "\033[1;33mΔ PUERTO TROJAN "
read -p ": " trojanport
trojanport=$(echo ${trojanport}|sed -e 's/[^0-9]//ig')
[[ -z ${trojanport} ]] && trojanport='180'
msg -bar3
sed -i 's/443/'${trojanport}'/g' /usr/local/etc/trojan/config.json
echo -ne "\033[1;33mΔ CLAVE TROJAN "
read -p ": " trojanpass
trojanpass=$(echo ${trojanpass}|sed -e's/[^0-9a-z_]//ig')
msg -bar3
[[ -z ${trojanpass} ]] && trojanpass=$(hostname)
echo -ne "\033[1;33mΔ COLOCA TU SNI "
read -p ": " trojanSNI
trojanSNI="$(echo ${trojanSNI}|sed -e 's/[^A-Za-z0-9._-$]//ig')"
[[ -z ${trojanSNI} ]] && trojanSNI='ssl.whatsapp.net'
SNI=$(cat /usr/local/etc/trojan/config.json | jq -r .ssl.sni)
new_id=$(uuidgen)
#sed -i "s%${SNI}%${trojanSNI}%g" /usr/local/etc/trojan/config.json
sed -i 's/'${SNI}'/'${trojanSNI}'/g' /usr/local/etc/trojan/config.json
msg -bar3
sed -i 's/passtrojan/'$new_id'/g' /usr/local/etc/trojan/config.json
echo -e "\033[1;32mΔ Iniciando Trojan Server"
msg -bar3
echo -ne "\033[1;31m[ ! ] AGREGANDO USUARIO ADMINISTRADOR "
(opcion=$trojanpass
espacios=$(echo "$opcion" | tr -d '[[:space:]]')
opcion=$espacios
echo "chumoghscript | chumoghscript | $(date '+%y-%m-%d' -d " +9999 days")" >> $user_conf
echo "$opcion | $new_id | $(date '+%y-%m-%d' -d " +999 days")" >> $user_conf
echo "$trojanpass" > ${user_conf}adm
) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
unset bot_ini
PIDGEN=$(ps x|grep -v grep|grep "/usr/local/etc/trojan/config.json")
if [[ ! $PIDGEN ]]; then
msg -bar3
read -t 5 -p " $(echo -e "\033[1;97m Poner en linea despues de un reinicio [s/n]: ")" -e -i "s" bot_ini
msg -bar3
[[ $bot_ini = @(s|S|y|Y) ]] && {
#echo "@reboot systemctl restart trojan.service" >>/bin/autoboot
[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
sed -i '/trojanserv/d' /bin/autoboot
echo -e "netstat -tlpn | grep -w ${trojanport} > /dev/null || { screen -r -S 'trojanserv' -X quit; screen -dmS trojanserv trojan --config /usr/local/etc/trojan/config.json >> /root/server.log & }" >>/bin/autoboot
[[ -z ${_apTT} ]] && {
echo -e "netstat -tlpn | grep -w 80 > /dev/null || { screen -r -S 'ws80' -X quit; screen -dmS ws80 python /etc/adm-lite/PDirect.py 80 ; }" >>/bin/autoboot
screen -dmS ws80 python /etc/adm-lite/PDirect.py 80 ;
}
echo -e "[Unit]
Description=Trojan Service by @ChumoGH
Documentation=https://trojan-gfw.github.io/trojan/config https://github.com/p4gefau1t/trojan/
After=network.target network-online.target nss-lookup.target mysql.service mariadb.service mysqld.service
StartLimitIntervalSec=0
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart="$(which trojan)" --config "/usr/local/etc/trojan/config.json" >> /root/server.log &
Restart=always
RestartSec=1s
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/trojan.service
systemctl daemon-reload &>/dev/null
systemctl enable trojan &>/dev/null
systemctl start trojan &>/dev/null
} || {
sed -i '/trojanserv/d' /bin/autoboot
[[ ${MENU_OPTION} = 2 ]] && {
[[ -z ${_apTT} ]] && {
echo -e "netstat -tlpn | grep -w 80 > /dev/null || { screen -r -S 'ws80' -X quit; screen -dmS ws80 python /etc/adm-lite/PDirect.py 80 ; }" >>/bin/autoboot
screen -dmS ws80 python /etc/adm-lite/PDirect.py 80 ;
}
}
echo -e "netstat -tlpn | grep -w ${trojanport} > /dev/null || { screen -r -S 'trojanserv' -X quit; screen -dmS trojanserv trojan --config /usr/local/etc/trojan/config.json >> /root/server.log & }" >>/bin/autoboot
echo -e "[Unit]
Description=Trojan Service by @ChumoGH
Documentation=https://trojan-gfw.github.io/trojan/config https://github.com/p4gefau1t/trojan/
After=network.target network-online.target nss-lookup.target mysql.service mariadb.service mysqld.service
StartLimitIntervalSec=0
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart="$(which trojan)" --config "/usr/local/etc/trojan/config.json" >> /root/server.log &
Restart=always
RestartSec=1s
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/trojan.service
systemctl daemon-reload &>/dev/null
systemctl enable trojan &>/dev/null
systemctl start trojan &>/dev/null
}
print_center -verd " AUTORESTARTS DE TROJAN-GO ENCENDIDO "
} || {
sed -i '/trojanserv/d' /bin/autoboot
echo -e "netstat -tlpn | grep -w ${trojanport} > /dev/null || { screen -r -S 'trojanserv' -X quit; screen -dmS trojanserv trojan --config /usr/local/etc/trojan/config.json >> /root/server.log & }" >>/bin/autoboot
echo -e "[Unit]
Description=Trojan Service by @ChumoGH
Documentation=https://trojan-gfw.github.io/trojan/config https://github.com/p4gefau1t/trojan/
After=network.target network-online.target nss-lookup.target mysql.service mariadb.service mysqld.service
StartLimitIntervalSec=0
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart="$(which trojan)" --config "/usr/local/etc/trojan/config.json" >> /root/server.log &
Restart=always
RestartSec=1s
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/trojan.service
systemctl daemon-reload &>/dev/null
systemctl enable trojan &>/dev/null
systemctl start trojan &>/dev/null
}
[[ -e /usr/local/etc/trojan/config.json ]] && {
# $HOME/PDirect80.py 'https://www.dropbox.com/s/4z2aj25m2avmttk/PDirect.py'
if wget -O /bin/autodel-trojan.sh https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/autodel-trojan.sh &>/dev/null ; then
chmod +x /bin/autodel-trojan.sh
chattr +i /bin/autodel-trojan.sh
fi
echo -e "[Unit]
Description=UsersKillTrojan Service by @ChumoGH
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/bin/bash /bin/autodel-trojan.sh
Restart=always
RestartSec=360s
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/trojankill.service
systemctl enable trojankill &>/dev/null
systemctl start trojankill &>/dev/null
systemctl daemon-reload &>/dev/null
msg -bar3
print_center -verd " AUTODELETE DE TROJAN-GO ENCENDIDO "
msg -bar3
} || {
kill -9 $(ps x | grep -v grep | grep "autodel-trojan.sh"| cut -d ' ' -f1) &>/dev/null
systemctl stop trojankill &>/dev/null
systemctl disable trojankill &>/dev/null
rm -f /etc/systemd/system/trojankill.service &>/dev/null
msg -bar3
echo -e "\033[1;31m TROJAN ID KILL fuera de linea"
msg -bar3
}
rm -f /root/server.log
#[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
#echo -ne "\033[1;32mΔ RESTART FOR ARM X64 " && (screen -dmS trojanserv trojan --config /usr/local/etc/trojan/config.json &) && echo "OK " || echo -e "\033[1;32mΔ FAIL"
#} || echo -ne "\033[1;32mΔ REINICIANDO SERVICIO " && (screen -dmS trojanserv trojan /usr/local/etc/trojan/config.json -l /root/server.log &) && echo "OK " || echo -e "\033[1;32mΔ FAIL"
#echo -ne "\033[1;32mΔ INICIANDO SERVICIO " && systemctl restart trojan.service && echo "OK " || echo -e "\033[1;32mΔ FAIL"
msg -bar3
else
killall trojan &> /dev/null
systemctl stop trojankill &>/dev/null
systemctl disable trojankill &>/dev/null
rm -f /etc/systemd/system/trojankill.service &>/dev/null
systemctl stop trojan &>/dev/null
systemctl disable trojan &>/dev/null
rm -f /etc/systemd/system/trojan.service &>/dev/null
fi
clear
[[ ! -z $(ps x | grep trojan | grep -v grep) ]] && {
tittle
SNI=$(cat /usr/local/etc/trojan/config.json | jq -r .ssl.sni)
echo -e "[\033[1;31m-\033[1;33m]\033[1;31m \033[1;33m"
echo -e "\033[1;33m Trojan Server Instalado"
echo -e " Remarks :" "$trojanpass"
echo -e " IP-Address:" "$IP"
echo -e " Port :" "$trojanport"
echo -e " CLAVE :" "$new_id"
echo -e " TCP :" " OPEN"
echo -e " NetWork :" " WS/TCP"
msg -bar3
echo
[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
msg -bar3
echo -e " \033[4;31mNOTA importante\033[0m"
echo -e " \033[0;31m PARA PROCESADORES ARM 64 "
echo -e " Si utilizas procesador ARM, este es solo"
echo -e " compatible con 1 SNI"
echo -e " El Host SNI/BugHost que añadiste "
echo -e " TU HOST : ${SNI}\033[0m"
msg -bar3
echo
msg -bar3
echo
}
echo -ne "$(msg -verd "") $(msg -verm2 " LINK TCP: ") "&& msg -bra "\033[1;41m trojan://$new_id@$IP:$trojanport"
echo
msg -bar3
echo
echo -ne "$(msg -verd "") $(msg -verm2 " LINK WS: ") "&& msg -bra "\033[1;41m trojan://$new_id@$IP:$trojanport?path=%2F&security=tls&type=ws&sni=$SNI"
echo
msg -bar3
echo -e "\033[1;33m Si necesitas cambiar el password edita el archivo o Ve a Menu Administrativo"
echo -e "\033[1;32m Ruta de Configuracion: /usr/local/etc/trojan/config.json"
msg -bar3
[[ $(ps x | grep trojan | grep -v grep) ]] && 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
} || {
tittle
echo -e " ERROR INTERNO DE LA CONFIGURACION"
rm -rf $trojdir
}
}
certdom () {
[[ -d /etc/trojan ]] && rm -rf /etc/trojan
mkdir /etc/trojan 1> /dev/null 2> /dev/null
[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
echo -e " -> BUSCANDO FILE COMPATIBLE CON ARM"
curl -LO --progress-bar https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json && wget -q -O /usr/local/etc/trojan/config.json https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json
} || {
echo -e " -> DESCARGANDO FILE NATIVO PROCESADORES X86_64"
curl -LO --progress-bar https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/config.json && wget -q --show-progress -O /usr/local/etc/trojan/config.json https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/config.json
[[ ${MENU_OPTION} = 2 ]] && wget https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json &>/dev/null -O /usr/local/etc/trojan/config.json &>/dev/null
}
source <(curl -sSL https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/certUP.sh)
[[ -e /data/cert.crt && -e /data/cert.key ]] && {
cat /data/cert.key > /etc/trojan/private.key
cat /data/cert.crt > /etc/trojan/fullchain.cer
echo -e "CERTIFICADO GENERADO"
echo -ne " \033[1;31m[ ! ] CARGANDO Certificado TROJAN" # Generate CA Config
(
#sed -i '13i "cert":"/etc/trojan/fullchain.cer",' /usr/local/etc/trojan/config.json
#sed -i '14i "key":"/etc/trojan/private.key",' /usr/local/etc/trojan/config.json
newdataCERT='/etc/trojan/fullchain.cer'
newdataKEY='/etc/trojan/private.key'
dataCERT=$(cat $config | jq -r .ssl.cert)
dataKEY=$(cat $config | jq -r .ssl.key)
sed -i "s%${dataCERT}%${newdataCERT}%g" $config
sed -i "s%${dataKEY}%${newdataKEY}%g" $config
) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
msg -bar3
echo -e "CERTIFICADO GENERADO EXITOSAMENTE"
msg -bar3
} || {
echo -e " ERROR AL CREAR CERTIFICADO "
}
}
troman(){
clear
tittle
[[ -d /etc/trojan ]] && rm -rf /etc/trojan
mkdir /etc/trojan 1> /dev/null 2> /dev/null
[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
echo -e " -> BUSCANDO FILE COMPATIBLE CON ARM"
curl -LO --progress-bar https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json && wget -q --show-progress -O /usr/local/etc/trojan/config.json https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json
} || {
echo -e " -> DESCARGANDO FILE NATIVO PROCESADORES X86_64"
curl -LO --progress-bar https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/config.json && wget -q --show-progress -O /usr/local/etc/trojan/config.json https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/config.json
[[ ${MENU_OPTION} = 2 ]] && wget https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json &>/dev/null -O /usr/local/etc/trojan/config.json &>/dev/null
}
openssl genrsa 2048 > /etc/trojan/private.key
chmod 400 /etc/trojan/private.key
openssl req -new -x509 -nodes -sha256 -days 365 -key /etc/trojan/private.key -out /etc/trojan/fullchain.cer
clear
msg -bar3
echo -ne " \033[1;31m[ ! ] GENERANDO Certificado TROJAN" # Generate CA Config
(
#sed -i '13i "cert":"/etc/trojan/fullchain.cer",' /usr/local/etc/trojan/config.json
#sed -i '14i "key":"/etc/trojan/private.key",' /usr/local/etc/trojan/config.json
newdataCERT='/etc/trojan/fullchain.cer'
newdataKEY='/etc/trojan/private.key'
dataCERT=$(cat $config | jq -r .ssl.cert)
dataKEY=$(cat $config | jq -r .ssl.key)
sed -i "s%${dataCERT}%${newdataCERT}%g" $config
sed -i "s%${dataKEY}%${newdataKEY}%g" $config
) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
msg -bar3
echo -e " CERTIFICADO GENERADO EXITOSAMENTE"
msg -bar3
}
troauto() {
clear
tittle
msg -bar3
[[ ! -d /usr/local/etc/trojan ]] && mkdir /usr/local/etc/trojan
[[ $(uname -m 2> /dev/null) != x86_64 ]] && {
echo -ne " -> BUSCANDO FILE COMPATIBLE CON ARM - "
#curl -LO --progress-bar https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json || wget -q --show-progress -O /usr/local/etc/trojan/config.json https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json
if wget https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json &>/dev/null -O /usr/local/etc/trojan/config.json &>/dev/null ; then
echo "[ OK ]"
else
echo "[ FAIL ]"
fi
} || {
echo -e " -> DESCARGANDO FILE NATIVO PROCESADORES X86_64 - "
#curl -LO --progress-bar https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/config.json || wget -q --show-progress -O /usr/local/etc/trojan/config.json https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/config.json
if wget https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/config.json &>/dev/null -O /usr/local/etc/trojan/config.json &>/dev/null ; then
[[ ${MENU_OPTION} = 2 ]] && wget https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/configARM.json &>/dev/null -O /usr/local/etc/trojan/config.json &>/dev/null
echo " FICHERO CONFIG DESCARGADO"
else
echo " IMPOSIBLE CONEGIR FICHERO"
fi
}
echo -ne " \033[1;31m[ ! ] GENERANDO Certificado TROJAN" # Generate CA Config
[[ -d /etc/trojan ]] && rm -rf /etc/trojan
mkdir /etc/trojan
(
openssl genrsa -out /etc/trojan/private.key 2048 > /dev/null 2>&1
chmod 400 /etc/trojan/private.key > /dev/null 2>&1
(echo "$(curl -sSL ipinfo.io | grep country | awk '{print $2}' | sed -e 's/[^a-z0-9 -]//ig')"; echo ""; echo "$(wget -qO- ifconfig.me)"; echo ""; echo ""; echo ""; echo "@ChumoGH")|openssl req -new -x509 -nodes -sha256 -days 365 -key /etc/trojan/private.key -out /etc/trojan/fullchain.cer > /dev/null 2>&1
) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]"
#echo -e "\033[1;37mΔ Generando Configuracion"
#sed -i '13i "cert":"/etc/trojan/fullchain.cer",' /usr/local/etc/trojan/config.json
newdataCERT='/etc/trojan/fullchain.cer'
newdataKEY='/etc/trojan/private.key'
dataCERT=$(cat $config | jq -r .ssl.cert)
dataKEY=$(cat $config | jq -r .ssl.key)
sed -i "s%${dataCERT}%${newdataCERT}%g" $config
sed -i "s%${dataKEY}%${newdataKEY}%g" $config
cd $HOME
msg -bar3
echo -e " CERTIFICADO GENERADO EXITOSAMENTE"
msg -bar3
#fun_bar
}
[[ -e /etc/adm-lite/menu_credito ]] && nomkey="$(cat < /etc/adm-lite/menu_credito|head -1)" || nomkey="$(curl -sSL "https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Lista/menu_credito")"
IP=$(wget -qO- ifconfig.me)
fun_ip () {
MEU_IP=$(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)
MEU_IP2=$(wget -qO- ipv4.icanhazip.com)
[[ "$MEU_IP" != "$MEU_IP2" ]] && IP="$MEU_IP2" || IP="$MEU_IP"
}
insta_tro () {
clear
tittle
killall trojan &> /dev/null
if [[ $(uname -m 2> /dev/null) != x86_64 ]]; then
msg -bar3
echo ""
echo -e " FAVOR EJECUTE EL SCRIPT EN MAQUINAS x86_64 "
echo ""
msg -bar3
echo -e " ARQUITECTURA NO COMPATIBLE CON TROJAN-GO "
echo ""
echo -e " NECESITA ACTIVAR PROXY SOCKS 80 PARA CONTINUAR"
echo ""
echo -e " INTENTAREMOS REDEFINIR UN INSTALADOR"
echo ""
msg -bar3
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/trojan-ARM.sh)"
else
msg -bar3
echo ""
echo " LEE DETALLADAMENTE ANTES DE CONTINUAR"
echo ""
echo " Trojan Golang usa modulo de Golang "
echo " En este menu te damos a escojer la Opcion"
echo " TCP - Metodo SSL+TLS Compatible con cualquier SNI"
echo " TCP+WS - Metodo SSL+TLS + WS ( Admite 1 solo SNI )"
echo ""
echo " ¿Qué quieres hacer?"
echo ""
echo " 1) TROJAN-GO | TCP ( Predeterminado )"
echo " 2) TROJAN-GO | TCP + WS "
msg -bar3
echo " 0) Salir + Cancelar"
until [[ ${MENU_OPTION} =~ ^[1-2]$ ]]; do
read -t 5 -p " Selecione una opcion [1-2]: " -e -i "1" MENU_OPTION
done
case "${MENU_OPTION}" in
1)
bash -c "$(wget -O- https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"
;;
2)
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/emirjorge/Script-Z/master/CHUMO/Recursos/trojango-sh/trojan-sh/trojan-ARM.sh)"
;;
0)
exit 0
;;
esac
fi
clear
}
tittle
msg -bar3
echo -e "\033[1;37m - INSTALADOR TROJAN - ChumoGH|ADM \033[0m"
echo ""
echo -e "\033[1;37m CORREJIDO EL PROBLEMA DE PROCESADORES ARM \033[0m"
echo ""
echo -e "\033[1;33m Se instalara¡ el servidor de Trojan\033[0m"
echo -e "\033[1;33m Si ya tenias una instalacion Previa, esta se eliminara\033[0m"
#echo -e "\033[1;33m Debes tener instalado previamente GO Lang\033[0m"
#[[ ! -z $(which go) ]] && echo -e " \033[1;33m Go Lang Instalado" || echo -e "\033[1;33m Instale Go Lang en ( *\033[1;33m menu\033[1;32m *\033[1;33m opcion 7 \033[1;32m*\033[1;33m opcion 15 \033[1;32m)"
msg -bar3
echo -e "\033[1;33m En caso de Carga o Certificado con Dominio\n DEBES TENER LIBRES PUERTOS 80 / 443 \033[0m"
msg -bar3
echo -e "\033[1;33m Deseas Continuar?\033[0m"
while [[ ${yesno} != @(s|S|y|Y|n|N) ]]; do
read -p "[S/N]: " yesno
tput cuu1 && tput dl1
done
[[ ${yesno} = @(N|n) ]] && exit
if [[ ${yesno} = @(s|S|y|Y) ]]; then
echo -e " MENU DE GENERACION DE CERTIFICADOS "
menutro () {
fun_ip
echo -e " "
msg -bar3
echo -e " \033[7;49;35m ===>>►► 🐲 Menu TROJAN ChumoGH💥VPS 🐲 ◄◄<<=== \033[0m"
msg -bar3
echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m➮\033[0;33m CERTIFICADO SSL AUTOMATICO \033[0;32m(#OFICIAL) "
echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m➮\033[0;31m CERT SSL CON DOMINIO \033[0;33m(#EXPERIMENTAL) "
echo -e " \033[0;35m[\033[0;36m3\033[0;35m] \033[0;34m➮\033[0;33m CERTIFICADO CON CARGA ZIP \033[0;32m(#OFICIAL) "
#msg -bar3
#echo -e " \033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m➮\033[0;33m MENU ADMINISTRADOR TROJAN-GO \033[0;32m(#OFICIAL) "
msg -bar3
selection=$(selection_fun 4)
case ${selection} in
1) insta_tro && troauto && troport ;;
2) insta_tro && certdom && troport;;
3) insta_tro && car_cert && troport;;
4)
[[ ! -z $(which troj.sh) ]] && troj.sh || echo -e "\033[1;33m INSTALE EL SERVICIO PRIMERO"
read -p " Enter";;
esac
}
fi
menutro && exit