1
0

mod-trojan.sh 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150
  1. #!/bin/sh
  2. #Autor: Henry Chumo
  3. #Alias : ChumoGH
  4. clear
  5. config="/usr/local/etc/trojan/config.json"
  6. temp="/etc/trojan/temp.json"
  7. trojdir="/etc/trojan" && [[ ! -d $trojdir ]] && mkdir $trojdir
  8. user_conf="/etc/trojan/user" && [[ ! -e $user_conf ]] && touch $user_conf
  9. backdir="/etc/trojan/back" && [[ ! -d ${backdir} ]] && mkdir ${backdir}
  10. tmpdir="$backdir/tmp"
  11. [[ ! -e $trojdir/conf ]] && echo "autBackup 0" > $trojdir/conf
  12. if [[ $(cat $trojdir/conf | grep "autBackup") = "" ]]; then
  13. echo "autBackup 0" >> $trojdir/conf
  14. fi
  15. unset barra
  16. barra="\033[0;34m•••••••••••••••••••••••••••••••••••••••••••••••••\033[0m"
  17. [[ -e /bin/ejecutar/msg ]] && source /bin/ejecutar/msg || source <(curl -sSL https://raw.githubusercontent.com/ChumoGH/ChumoGH-Script/master/msg-bar/msg)
  18. numero='^[0-9]+$'
  19. hora=$(printf '%(%H:%M:%S)T')
  20. fecha=$(printf '%(%D)T')
  21. restroj(){
  22. msg -bar
  23. killall trojan &> /dev/null
  24. [[ -e /root/server.log ]] && echo > /root/server.log || touch /root/server.log
  25. [[ $(uname -m 2> /dev/null) != x86_64 ]] && {
  26. echo -ne "\033[1;32mΔ RESTART FOR ARM X64 " && (screen -dmS trojanserv trojan --config /usr/local/etc/trojan/config.json >> /root/server.log &) && echo "OK " || echo -e "\033[1;32mΔ FAIL"
  27. #echo -ne "\033[1;32mΔ RESTART " && systemctl restart trojan.service && echo "OK " || echo -e "\033[1;32mΔ FAIL"
  28. } || 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"
  29. msg -bar
  30. }
  31. restore(){
  32. clear
  33. unset num
  34. unset opcion
  35. unset _res
  36. if [[ -z $(ls $backdir) ]]; then
  37. title " no se encontraron respaldos"
  38. sleep 0.3
  39. return
  40. fi
  41. num=1
  42. title " Lista de Respaldos creados"
  43. blanco " nom \033[0;31m| \033[1;37mfechas \033[0;31m| \033[1;37mhora"
  44. msg -bar
  45. for i in $(ls $backdir); do
  46. col "$num)" "$i"
  47. _res[$num]=$i
  48. let num++
  49. done
  50. msg -bar
  51. col "0)" "VOLVER"
  52. msg -bar
  53. blanco " cual desea restaurar?" 0
  54. read opcion
  55. [[ $opcion = 0 ]] && return
  56. [[ -z $opcion ]] && blanco "\n deves seleccionar una opcion!" && sleep 2 && return
  57. [[ ! $opcion =~ $numero ]] && blanco "\n solo deves ingresar numeros!" && sleep 2 && return
  58. [[ $opcion -gt ${#_res[@]} ]] && blanco "\n solo numeros entre 0 y ${#_res[@]}" && sleep 2 && return
  59. mkdir $backdir/tmp
  60. tar xpf $backdir/${_res[$opcion]} -C $backdir/tmp/
  61. clear
  62. title " Archivos que se restauran"
  63. if rm -rf $config && cp $tmpdir/config.json $temp; then
  64. sleep 1
  65. cat $temp > $config
  66. chmod 777 $config
  67. rm $temp
  68. blanco " /usr/local/etc/trojan/config.json..." && verde "[ok]"
  69. else
  70. blanco " /usr/local/etc/trojan/config.json..." && rojo "[fail]"
  71. fi
  72. if rm -rf $user_conf && cp $tmpdir/user $user_conf; then
  73. blanco " /etc/troja/user..." && verde "[ok]"
  74. else
  75. blanco " /etc/trojan/user..." && rojo "[fail]"
  76. fi
  77. #[[ -e $tmpdir/fullchain.cer ]] && mv $tmpdir/fullchain.cer $tmpdir/fullchain.crt
  78. if rm -rf /etc/adm-lite/trojancert && mkdir /etc/adm-lite/trojancert && cp $tmpdir/*.cer /etc/adm-lite/trojancert/fullchain.cer && cp $tmpdir/*.key /etc/adm-lite/trojancert/private.key; then
  79. blanco " /etc/adm-lite/trojancert/fullchain.cer..." && verde "[ok]"
  80. blanco " /etc/adm-lite/trojancert/private.key..." && verde "[ok]"
  81. else
  82. blanco " /etc/adm-lite/trojancert/fullchain.cer..." && rojo "[fail]"
  83. blanco " /etc/adm-lite/trojancert/private.key..." && rojo "[fail]"
  84. echo $barra
  85. echo -e "VALIDA TU CERTIFICADO SSL "
  86. fi
  87. rm -rf $tmpdir
  88. msg -bar
  89. continuar
  90. read foo
  91. }
  92. backups(){
  93. while :
  94. do
  95. unset opcion
  96. unset PID
  97. if [[ $(ps x | grep "http-server" | grep -v grep) = "" ]]; then
  98. PID="\033[0;31m[offline]"
  99. else
  100. PID="\033[1;92m[online]"
  101. fi
  102. clear
  103. title " Config de Respaldos"
  104. col "1)" "Respaldar Ahora"
  105. col "2)" "\033[1;92mRestaurar Respaldo"
  106. col "3)" "\033[0;31mEliminiar Respaldos"
  107. col "4)" "\033[1;34mRespaldo en linea $PID"
  108. col "5)" "\033[1;33mRespaldos automatico $(on_off_res)"
  109. msg -bar
  110. col "6)" "\033[1;33m RESTAURAR Online PORT :81 "
  111. col "7)" "\033[1;33m RESPALDO LOCAL "
  112. msg -bar
  113. col "0)" "VOLVER"
  114. msg -bar
  115. blanco "opcion" 0
  116. read opcion
  117. case $opcion in
  118. 1) backup
  119. clear
  120. title " Nuevo Respaldo Creado..."
  121. sleep 0.5;;
  122. 2) restore;;
  123. 3) rm -rf $backdir/*.tar
  124. clear
  125. title " Almacer de Respaldo limpia..."
  126. sleep 0.5;;
  127. 4) server;;
  128. 5) if [[ $(cat $v2rdir/conf | grep "autBackup" | cut -d " " -f2) = "0" ]]; then
  129. sed -i 's/autBackup 0/autBackup 1/' $v2rdir/conf
  130. else
  131. sed -i 's/autBackup 1/autBackup 0/' $v2rdir/conf
  132. fi;;
  133. 6)
  134. clear
  135. echo -e "\033[0;33m
  136. ESTA FUNCION EXPERIMENTAL
  137. Una vez que se descarge tu Fichero, Escoje el BackOnline
  138. + OJO +
  139. Luego de Restaurarlo, Vuelve Activar el TLS
  140. Para Validar la Configuracion de tu certificao"
  141. msg -bar
  142. echo -e "INGRESE LINK Online en GitHub, o VPS \n"
  143. read -p "Pega tu Link : " url1
  144. 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
  145. ;;
  146. 7)
  147. bakc;;
  148. 0) break;;
  149. *) blanco "opcion incorrecta..." && sleep 2;;
  150. esac
  151. done
  152. }
  153. backup() {
  154. unset fecha
  155. unset hora
  156. unset tmp
  157. unset back
  158. unset cer
  159. unset key
  160. #fecha=`date +%d-%m-%y-%R`
  161. fecha=`date +%d-%m-%y`
  162. hora=`date +%R`
  163. tmp="$backdir/tmp" && [[ ! -d ${tmp} ]] && mkdir ${tmp}
  164. back="$backdir/troj___${fecha}___${hora}.tar"
  165. [[ -e /etc/adm-lite/trojancert/fullchain.cer ]] && cer="/etc/adm-lite/trojancert/fullchain.cer"
  166. [[ -e /etc/adm-lite/trojancert/private.key ]] && key="/etc/adm-lite/trojancert/private.key"
  167. cp $user_conf $tmp
  168. cp $config $tmp
  169. [[ ! $cer = null ]] && [[ -e $cer ]] && cp $cer $tmp
  170. [[ ! $key = null ]] && [[ -e $cer ]] && cp $key $tmp
  171. cd $tmp
  172. tar -cpf $back *
  173. cp $back /var/www/html/trojanBack.tar && echo -e "
  174. Descargarlo desde cualquier sitio con acceso WEB
  175. LINK : http://$(wget -qO- ifconfig.me):81/trojanBack.tar \033[0m
  176. -------------------------------------------------------"
  177. read -p "ENTER PARA CONTINUAR"
  178. rm -rf $tmp
  179. }
  180. trojan()
  181. {
  182. wget -q https://www.dropbox.com/s/vogt0tyaqg0gee1/trojango.sh; chmod +x trojango.sh; ./trojango.sh
  183. rm -f trojango.sh
  184. }
  185. install_ini () {
  186. add-apt-repository universe
  187. apt update -y; apt upgrade -y
  188. clear
  189. echo -e "$BARRA"
  190. echo -e "\033[92m -- INSTALANDO PAQUETES NECESARIOS -- "
  191. echo -e "$BARRA"
  192. #bc
  193. [[ $(dpkg --get-selections|grep -w "bc"|head -1) ]] || apt-get install bc -y &>/dev/null
  194. [[ $(dpkg --get-selections|grep -w "bc"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  195. [[ $(dpkg --get-selections|grep -w "bc"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  196. echo -e "\033[97m # apt-get install bc................... $ESTATUS "
  197. #jq
  198. [[ $(dpkg --get-selections|grep -w "jq"|head -1) ]] || apt-get install jq -y &>/dev/null
  199. [[ $(dpkg --get-selections|grep -w "jq"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  200. [[ $(dpkg --get-selections|grep -w "jq"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  201. echo -e "\033[97m # apt-get install jq................... $ESTATUS "
  202. #curl
  203. [[ $(dpkg --get-selections|grep -w "curl"|head -1) ]] || apt-get install curl -y &>/dev/null
  204. [[ $(dpkg --get-selections|grep -w "curl"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  205. [[ $(dpkg --get-selections|grep -w "curl"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  206. echo -e "\033[97m # apt-get install curl................. $ESTATUS "
  207. #npm
  208. [[ $(dpkg --get-selections|grep -w "npm"|head -1) ]] || apt-get install npm -y &>/dev/null
  209. [[ $(dpkg --get-selections|grep -w "npm"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  210. [[ $(dpkg --get-selections|grep -w "npm"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  211. echo -e "\033[97m # apt-get install npm.................. $ESTATUS "
  212. #nodejs
  213. [[ $(dpkg --get-selections|grep -w "nodejs"|head -1) ]] || apt-get install nodejs -y &>/dev/null
  214. [[ $(dpkg --get-selections|grep -w "nodejs"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  215. [[ $(dpkg --get-selections|grep -w "nodejs"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  216. echo -e "\033[97m # apt-get install nodejs............... $ESTATUS "
  217. #socat
  218. [[ $(dpkg --get-selections|grep -w "socat"|head -1) ]] || apt-get install socat -y &>/dev/null
  219. [[ $(dpkg --get-selections|grep -w "socat"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  220. [[ $(dpkg --get-selections|grep -w "socat"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  221. echo -e "\033[97m # apt-get install socat................ $ESTATUS "
  222. #netcat
  223. [[ $(dpkg --get-selections|grep -w "netcat"|head -1) ]] || apt-get install netcat -y &>/dev/null
  224. [[ $(dpkg --get-selections|grep -w "netcat"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  225. [[ $(dpkg --get-selections|grep -w "netcat"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  226. echo -e "\033[97m # apt-get install netcat............... $ESTATUS "
  227. #netcat-traditional
  228. [[ $(dpkg --get-selections|grep -w "netcat-traditional"|head -1) ]] || apt-get install netcat-traditional -y &>/dev/null
  229. [[ $(dpkg --get-selections|grep -w "netcat-traditional"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  230. [[ $(dpkg --get-selections|grep -w "netcat-traditional"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  231. echo -e "\033[97m # apt-get install netcat-traditional... $ESTATUS "
  232. #net-tools
  233. [[ $(dpkg --get-selections|grep -w "net-tools"|head -1) ]] || apt-get net-tools -y &>/dev/null
  234. [[ $(dpkg --get-selections|grep -w "net-tools"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  235. [[ $(dpkg --get-selections|grep -w "net-tools"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  236. echo -e "\033[97m # apt-get install net-tools............ $ESTATUS "
  237. #cowsay
  238. [[ $(dpkg --get-selections|grep -w "cowsay"|head -1) ]] || apt-get install cowsay -y &>/dev/null
  239. [[ $(dpkg --get-selections|grep -w "cowsay"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  240. [[ $(dpkg --get-selections|grep -w "cowsay"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  241. echo -e "\033[97m # apt-get install cowsay............... $ESTATUS "
  242. #figlet
  243. [[ $(dpkg --get-selections|grep -w "figlet"|head -1) ]] || apt-get install figlet -y &>/dev/null
  244. [[ $(dpkg --get-selections|grep -w "figlet"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  245. [[ $(dpkg --get-selections|grep -w "figlet"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  246. echo -e "\033[97m # apt-get install figlet............... $ESTATUS "
  247. #lolcat
  248. apt-get install lolcat -y &>/dev/null
  249. sudo gem install lolcat &>/dev/null
  250. [[ $(dpkg --get-selections|grep -w "lolcat"|head -1) ]] || ESTATUS=`echo -e "\033[91mFALLO DE INSTALACION"` &>/dev/null
  251. [[ $(dpkg --get-selections|grep -w "lolcat"|head -1) ]] && ESTATUS=`echo -e "\033[92mINSTALADO"` &>/dev/null
  252. echo -e "\033[97m # apt-get install lolcat............... $ESTATUS "
  253. echo -e "$BARRA"
  254. echo -e "\033[92m La instalacion de paquetes necesarios a finalizado"
  255. echo -e "$BARRA"
  256. echo -e "\033[97m Si la instalacion de paquetes tiene fallas"
  257. echo -ne "\033[97m Puede intentar de nuevo [s/n]: "
  258. read inst
  259. [[ $inst = @(s|S|y|Y) ]] && install_ini
  260. }
  261. changeCERT () {
  262. clear&&clear
  263. unset opcion
  264. dataCERT=$(cat $config | jq -r .ssl.cert)
  265. dataKEY=$(cat $config | jq -r .ssl.key)
  266. msg -bar3 && echo ""
  267. echo -e " INGRESO DE RUTA DE CERTIFICADO SSL VALIDO ACTUAL" && echo ""
  268. echo -e " DATA CRT : ${dataCERT}" && echo "" && echo -e " DATA CRT : ${dataKEY}" && echo "" && msg -bar3 && echo -e ""
  269. while :
  270. do
  271. echo -e " DESEAS CAMBIAR RUTA DE TU CERTIFICADO SSL ? "
  272. read -p " [SI / NO ] :" opcion
  273. case $opcion in
  274. 0)break ;;
  275. [Yy]|[Ss])
  276. echo -e " A CONTINUACION INGRESE SUS NUEVAS RUTAS DE CERTIFICADO"
  277. echo -e " DEFAULT ( /data/cert.crt && /data/cert.key ) ." && echo ""
  278. read -p "$(echo -e " DATA CRT :")" -e -i "/data/cert.crt" newdataCERT
  279. tput cuu1 && tput dl1
  280. read -p "$(echo -e " DATA KEY :")" -e -i "/data/cert.key" newdataKEY
  281. sed -i "s%${dataCERT}%${newdataCERT}%g" $config
  282. sed -i "s%${dataKEY}%${newdataKEY}%g" $config
  283. break
  284. ;;
  285. [Nn]) cancelar && sleep 0.5 && break;;
  286. *) echo -e "\n \033[1;49;37mSelecione (S) para si o (N) para no!\033[0m" && sleep 0.5 && continue
  287. tput cuu1 && tput dl1
  288. tput cuu1 && tput dl1
  289. tput cuu1 && tput dl1
  290. tput cuu1 && tput dl1
  291. ;;
  292. esac
  293. done
  294. }
  295. changeSNI () {
  296. clear&&clear
  297. unset opcion
  298. dataCERT=$(cat $config | jq -r .ssl.sni)
  299. msg -bar3 && echo ""
  300. echo -e " INGRESO INGRESA SNI VALIDO" && echo ""
  301. echo -e " SNI : ${dataCERT}" && echo "" && msg -bar3 && echo -e ""
  302. while :
  303. do
  304. echo -e " DESEAS CAMBIAR SNI ? "
  305. read -p " [SI / NO ] :" opcion
  306. case $opcion in
  307. 0)break ;;
  308. [Yy]|[Ss])
  309. echo -e " A CONTINUACION INGRESE SU NUEVO SNI"
  310. read -p "$(echo -e " SNI Defauld : ")" -e -i "ssl.whatsapp.net" newdataKEY
  311. if sed -i "s%${dataCERT}%${newdataCERT}%g" $config ; then
  312. echo -e " EXITO AL CAMBIAR TU SNI"
  313. else
  314. newdataKEY='"sni": "${newdataKEY}",'
  315. sed -i "s%${dataCERT}%${newdataCERT}%g" $config
  316. echo -e " ERROR AL MODIFICAR SNI"
  317. fi
  318. break
  319. ;;
  320. [Nn]) cancelar && sleep 0.5 && break;;
  321. *) echo -e "\n \033[1;49;37mSelecione (S) para si o (N) para no!\033[0m" && sleep 0.5 && continue
  322. ;;
  323. esac
  324. done
  325. }
  326. enon(){
  327. echo "source <(curl -sSL https://www.dropbox.com/s/5j139718zgsr6cy/mod-trojan.sh)" > /bin/troj.sh
  328. chmod +x /bin/troj.sh
  329. clear
  330. msg -bar
  331. blanco " Se ha agregado un autoejecutor en el Sector de Inicios Rapidos"
  332. msg -bar
  333. blanco " Para Acceder al menu Rapido \n Utilize * troj.sh * !!!"
  334. msg -bar
  335. echo -e " \033[4;31mNOTA importante\033[0m"
  336. echo -e " \033[0;31mSi deseas desabilitar esta opcion, apagala"
  337. echo -e " Y te recomiendo, no alterar nada en este menu, para"
  338. echo -e " Evitar Errores Futuros"
  339. echo -e " y causar problemas en futuras instalaciones.\033[0m"
  340. msg -bar
  341. continuar
  342. read foo
  343. }
  344. enoff(){
  345. rm -f /bin/v2r.sh
  346. msg -bar
  347. echo -e " \033[4;31mNOTA importante\033[0m"
  348. echo -e " \033[0;31mSe ha Desabilitado el menu Rapido de troj.sh"
  349. echo -e " Y te recomiendo, no alterar nada en este menu, para"
  350. echo -e " Evitar Errores Futuros"
  351. echo -e " y causar problemas en futuras instalaciones.\033[0m"
  352. msg -bar
  353. continuar
  354. read foo
  355. }
  356. enttrada () {
  357. while :
  358. do
  359. clear
  360. msg -bar
  361. blanco " Ajustes e Entrasda Rapida de Menu TROJAN"
  362. msg -bar
  363. col "1)" "Habilitar troj.sh, Como entrada Rapida"
  364. col "2)" "Eliminar troj.sh, Como entrada Rapida"
  365. msg -bar
  366. col "0)" "Volver"
  367. msg -bar
  368. blanco "opcion" 0
  369. read opcion
  370. [[ -z $opcion ]] && vacio && sleep 0.3 && break
  371. [[ $opcion = 0 ]] && break
  372. case $opcion in
  373. 1)enon;;
  374. 2)enoff;;
  375. *) blanco " solo numeros de 0 a 2" && sleep 0.3;;
  376. esac
  377. done
  378. }
  379. on_off_res(){
  380. if [[ $(cat $trojdir/conf | grep "autBackup" | cut -d " " -f2) = "0" ]]; then
  381. echo -e "\033[0;31m[off]"
  382. else
  383. echo -e "\033[1;92m[on]"
  384. fi
  385. }
  386. blanco(){
  387. [[ ! $2 = 0 ]] && {
  388. echo -e "\033[1;37m$1\033[0m"
  389. } || {
  390. echo -ne " \033[1;37m$1:\033[0m "
  391. }
  392. }
  393. verde(){
  394. [[ ! $2 = 0 ]] && {
  395. echo -e "\033[1;32m$1\033[0m"
  396. } || {
  397. echo -ne " \033[1;32m$1:\033[0m "
  398. }
  399. }
  400. rojo(){
  401. [[ ! $2 = 0 ]] && {
  402. echo -e "\033[1;31m$1\033[0m"
  403. } || {
  404. echo -ne " \033[1;31m$1:\033[0m "
  405. }
  406. }
  407. col(){
  408. nom=$(printf '%-55s' "\033[0;92m${1} \033[0;31m ➣ \033[1;37m${2}")
  409. echo -e " $nom\033[0;31m${3} \033[0;92m${4}\033[0m"
  410. }
  411. col2(){
  412. echo -e " \033[1;91m$1\033[0m \033[1;37m$2\033[0m"
  413. }
  414. vacio(){
  415. blanco "\n no se puede ingresar campos vacios..."
  416. }
  417. cancelar(){
  418. echo -e "\n \033[3;49;31minstalacion cancelada...\033[0m"
  419. }
  420. continuar(){
  421. echo -e " \033[3;49;32mEnter para continuar...\033[0m"
  422. }
  423. title2(){
  424. trojanports=`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
  425. trojanports=$(echo $trojanports | awk {'print $1'})
  426. _tconex=$(netstat -nap | grep "$trojanports" | grep trojan | grep ESTABLISHED| grep tcp6 | awk {'print $5'} | awk -F ":" '{print $1}' | sort | uniq | wc -l)
  427. v1=$(cat /etc/adm-lite/v-local.log)
  428. v2=$(cat /bin/ejecutar/v-new.log)
  429. echo -e "\033[7;49;35m =====>>►► 🐲 Menu TROJAN ChumoGH💥VPS 🐲 ◄◄<<===== \033[0m"
  430. msg -bar
  431. [[ $(uname -m 2> /dev/null) != x86_64 ]] && echo -e " CPU : ARM64 - BINARIO : trojan-go"
  432. [[ $v1 = $v2 ]] && echo -e " \e[97m\033[1;41mPROYECT TROJAN BY @ChumoGH [$v1] \033[0m" || echo -e " \e[97m\033[1;41mProyecto Trojan by @ChumoGH [$v1] >> \033[1;92m[$v2] \033[0m"
  433. echo -e " ${cor[2]} ${pPIniT} \033[1;37mIP: \033[1;31m$(wget -qO- ifconfig.me) ${cor[2]}${pPIniT} \033[1;37m"
  434. [[ ! -z $trojanports ]] && echo -e " \e[97m\033[1;41mPUERTO ACTIVO :\033[0m \033[3;32m$trojanports\033[0m \e[97m\033[1;41m 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"
  435. }
  436. title(){
  437. msg -bar
  438. echo -e " >>>>>>> Fecha Actual $(date '+%d-%m-%Y') <<<<<<<<<<<"
  439. blanco "$1"
  440. msg -bar
  441. }
  442. userDat(){
  443. #echo -e " >>>>>>> Fecha Actual $(date '+%d-%m-%Y') <<<<<<<<<<<"
  444. blanco " N° Usuarios fech exp dias"
  445. msg -bar
  446. }
  447. log_traff () {
  448. [[ $log0 -le 1 ]] && restroj && let log0++ && clear
  449. msg -bar3
  450. echo -e ""
  451. echo -e " ESPERANDO A LA VERIFICACION DE IPS Y USUARIOS "
  452. echo -e " ESPERE UN MOMENTO PORFAVOR $log0"
  453. echo -e ""
  454. msg -bar3
  455. fun_bar
  456. msg -bar3
  457. sleep 5s
  458. clear&&clear
  459. title2
  460. msg -bar3
  461. IP_tconex=$(netstat -nap | grep "$trojanports" | grep trojan | grep ESTABLISHED | awk {'print $5'} | awk -F ":" '{print $1}' | sort | uniq)
  462. nick="$(cat $config | grep ',"')"
  463. users="$(echo $nick|sed -e 's/[^a-z0-9 -]//ig')"
  464. n=1
  465. [[ -z $IP_tconex ]] && echo -e " NO HAY USUARIOS CONECTADOS!" && return
  466. for i in $IP_tconex
  467. do
  468. USERauth=$(cat $HOME/server.log | grep $i | cut -d: -f4 | grep authenticated |awk '{print $4}'| sort | uniq)
  469. #PORTauth=$(cat $HOME/server.log | grep $i | cut -d: -f4 | grep authenticated |awk '{print $1}')
  470. #PORTdisco=$(cat $HOME/server.log | grep $i | cut -d: -f4 | grep authenticated |awk '{print $1}')
  471. # echo -e " $n) $USERauth - $i "
  472. Users+="$USERauth\n"
  473. #let n++
  474. done
  475. #echo -e "$Users"
  476. echo -e " N) USER - CONEXIONES "|column -t -s '-'
  477. for U in $users
  478. do
  479. CConT=$(echo -e "$Users" | grep $U |wc -l)
  480. [[ $CConT = 0 ]] && continue
  481. UConc+=" $n) $U -$CConT\n"
  482. let n++
  483. done
  484. echo -e "$UConc"|column -t -s '-'
  485. msg -bar
  486. continuar
  487. read foo
  488. #tail -f /usr/local/etc/trojan/config.json
  489. }
  490. fun_bar () {
  491. #==comando a ejecutar==
  492. comando="$1"
  493. #==interfas==
  494. in=' ['
  495. en=' ] '
  496. full_in="➛"
  497. full_en='100%'
  498. bar=("--------------------"
  499. "=-------------------"
  500. "]=------------------"
  501. "[-]=-----------------"
  502. "=[-]=----------------"
  503. "-=[-]=---------------"
  504. "--=[-]=--------------"
  505. "---=[-]=-------------"
  506. "----=[-]=------------"
  507. "-----=[-]=-----------"
  508. "------=[-]=----------"
  509. "-------=[-]=---------"
  510. "--------=[-]=--------"
  511. "---------=[-]=-------"
  512. "----------=[-]=------"
  513. "-----------=[-]=-----"
  514. "------------=[-]=----"
  515. "-------------=[-]=---"
  516. "--------------=[-]=--"
  517. "---------------=[-]=-"
  518. "----------------=[-]="
  519. "-----------------=[-]"
  520. "------------------=["
  521. "-------------------="
  522. "------------------=["
  523. "-----------------=[-]"
  524. "----------------=[-]="
  525. "---------------=[-]=-"
  526. "--------------=[-]=--"
  527. "-------------=[-]=---"
  528. "------------=[-]=----"
  529. "-----------=[-]=-----"
  530. "----------=[-]=------"
  531. "---------=[-]=-------"
  532. "--------=[-]=--------"
  533. "-------=[-]=---------"
  534. "------=[-]=----------"
  535. "-----=[-]=-----------"
  536. "----=[-]=------------"
  537. "---=[-]=-------------"
  538. "--=[-]=--------------"
  539. "-=[-]=---------------"
  540. "=[-]=----------------"
  541. "[-]=-----------------"
  542. "]=------------------"
  543. "=-------------------"
  544. "--------------------");
  545. #==color==
  546. in="\033[1;33m$in\033[0m"
  547. en="\033[1;33m$en\033[0m"
  548. full_in="\033[1;31m$full_in"
  549. full_en="\033[1;32m$full_en\033[0m"
  550. _=$(
  551. $comando > /dev/null 2>&1
  552. ) & > /dev/null
  553. pid=$!
  554. while [[ -d /proc/$pid ]]; do
  555. for i in "${bar[@]}"; do
  556. echo -ne "\r $in"
  557. echo -ne "ESPERE $en $in \033[1;31m$i"
  558. echo -ne " $en"
  559. sleep 0.1
  560. done
  561. done
  562. echo -e " $full_in $full_en"
  563. sleep 0.1s
  564. }
  565. add_user(){
  566. autoDel
  567. unset seg
  568. seg=$(date +%s)
  569. while :
  570. do
  571. clear
  572. nick="$(cat $config | grep ',"')"
  573. users="$(cat < ${user_conf}adm) $(echo $nick|sed -e 's/[^a-z0-9 -]//ig')"
  574. title " CREAR USUARIO Trojan"
  575. userDat
  576. n=0
  577. for i in $users
  578. do
  579. unset DateExp
  580. unset seg_exp
  581. unset exp
  582. [[ $i = "chumoghscript" ]] && {
  583. n=0
  584. i="ADM-SCRIPT"
  585. a='◈'
  586. DateExp="【 I N D E F I N I D O 】"
  587. col "$a)" "$i" "$DateExp"
  588. } || {
  589. [[ $i = "$(cat < ${user_conf}adm)" ]] && {
  590. n=0
  591. i="$(cat < ${user_conf}adm)"
  592. a='◈'
  593. DateExp="【 I N D E F I N I D O 】"
  594. col "$a)" "$i" "$DateExp"
  595. } || {
  596. DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
  597. seg_exp=$(date +%s --date="$DateExp")
  598. exp="[$(($(($seg_exp - $seg)) / 86400))]"
  599. col "$n)" "$i" "$DateExp" "$exp"
  600. }
  601. }
  602. let n++
  603. done
  604. msg -bar
  605. col "0)" "VOLVER"
  606. msg -bar
  607. blanco "Ingresa Nombre de USUARIO :" 0
  608. read usser
  609. usser=$(echo ${usser} |sed -e's/[^0-9a-z]//ig')
  610. [[ -z $usser ]] && vacio && sleep 0.3 && continue
  611. [[ $usser = 0 ]] && break
  612. [[ -z $(echo "$users" | grep $usser) ]] && {
  613. opcion=$usser
  614. msg -bar
  615. blanco "DURACION EN DIAS" 0
  616. read dias
  617. dias=$(echo ${dias} |sed -e's/[^0-9]//ig')
  618. espacios=$(echo "$opcion" | tr -d '[[:space:]]')
  619. opcion=$espacios
  620. mv $config $temp
  621. movetm=$(echo -e "$opcion" | sed 's/^/,"/;s/$/"/')
  622. sed "10i\ $movetm" $temp > $config
  623. #echo -e "$opcion" | sed 's/^/,"/;s/$/"/'
  624. sed -i "/usser/d" $user_conf
  625. echo "$opcion | $usser | $(date '+%y-%m-%d' -d " +$dias days")" >> $user_conf
  626. chmod 777 $config
  627. rm $temp
  628. clear
  629. msg -bar
  630. blanco " Usuario $usser creado con exito"
  631. msg -bar
  632. autoDel
  633. restroj
  634. } || echo " USUARIO YA EXISTE " && sleep 0.5s
  635. done
  636. }
  637. renew(){
  638. while :
  639. do
  640. unset user
  641. clear
  642. title " RENOVAR USUARIOS"
  643. userDat
  644. userEpx=$(cut -d " " -f1 $user_conf)
  645. n=1
  646. for i in $userEpx
  647. do
  648. DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
  649. seg_exp=$(date +%s --date="$DateExp")
  650. [[ "$seg" -gt "$seg_exp" ]] && {
  651. col "$n)" "$i" "$DateExp" "\033[0;31m[Exp]"
  652. uid[$n]="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f2|tr -d '[[:space:]]')"
  653. user[$n]=$i
  654. let n++
  655. }
  656. done
  657. [[ -z ${user[1]} ]] && blanco " No hay expirados"
  658. msg -bar
  659. col "0)" "VOLVER"
  660. msg -bar
  661. blanco "NUMERO DE USUARIO A RENOVAR" 0
  662. read opcion
  663. [[ -z $opcion ]] && vacio && sleep 0.3 && continue
  664. [[ $opcion = 0 ]] && break
  665. [[ ! $opcion =~ $numero ]] && {
  666. blanco " solo numeros apartir de 1"
  667. sleep 0.3
  668. } || {
  669. [[ $opcion>=${n} ]] && {
  670. let n--
  671. blanco "solo numero entre 1 y $n"
  672. sleep 0.3
  673. } || {
  674. blanco "DURACION EN DIAS" 0
  675. read dias
  676. mv $config $temp
  677. movetm=$(echo -e "${user[$opcion]}" | sed 's/^/,"/;s/$/"/')
  678. sed "10i\ $movetm" $temp > $config
  679. sed -i "/${user[$opcion]}/d" $user_conf
  680. echo "${user[$opcion]} | ${user[$opcion]} | $(date '+%y-%m-%d' -d " +$dias days")" >> $user_conf
  681. chmod 777 $config
  682. rm -f $temp
  683. clear
  684. msg -bar
  685. blanco " Usuario > ${user[$opcion]} renovado hasta $(date '+%y-%m-%d' -d " +$dias days")"
  686. sleep 5s
  687. }
  688. }
  689. done
  690. restroj
  691. continuar
  692. read foo
  693. }
  694. autoDel(){
  695. source <(curl -sSL https://www.dropbox.com/s/6mbvvyzxppecqqp/autodel-trojan.sh)
  696. }
  697. dell_user(){
  698. unset seg
  699. seg=$(date +%s)
  700. while :
  701. do
  702. clear
  703. nick="$(cat $config | grep ',"')"
  704. users="$(cat < ${user_conf}adm) $(echo $nick|sed -e 's/[^a-z0-9 -]//ig')"
  705. title " ELIMINAR USUARIO TROJAN"
  706. userDat
  707. n=0
  708. for i in $users
  709. do
  710. userd[$n]=$i
  711. unset DateExp
  712. unset seg_exp
  713. unset exp
  714. [[ $i = "chumoghscript" ]] && {
  715. i="ADM-SCRIPT"
  716. a='◈'
  717. DateExp="【 I N D E F I N I D O 】"
  718. col "$a)" "$i" "$DateExp"
  719. } || {
  720. [[ $i = "$(cat < ${user_conf}adm)" ]] && {
  721. i="$(cat < ${user_conf}adm)"
  722. a='◈'
  723. DateExp="【 I N D E F I N I D O 】"
  724. col "$a)" "$i" "$DateExp"
  725. } || {
  726. DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
  727. seg_exp=$(date +%s --date="$DateExp")
  728. exp="[$(($(($seg_exp - $seg)) / 86400))]"
  729. col "$n)" "$i" "$DateExp" "$exp"
  730. }
  731. }
  732. p=$n
  733. let n++
  734. done
  735. userEpx=$(cut -d " " -f 1 $user_conf)
  736. for i in $userEpx
  737. do
  738. DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
  739. seg_exp=$(date +%s --date="$DateExp")
  740. [[ "$seg" -gt "$seg_exp" ]] && {
  741. col "$n)" "$i" "$DateExp" "\033[0;31m[Exp]"
  742. expUser[$n]=$i
  743. }
  744. let n++
  745. done
  746. msg -bar
  747. col "0)" "VOLVER"
  748. msg -bar
  749. blanco "NUMERO DE USUARIO A ELIMINAR" 0
  750. read opcion
  751. [[ -z $opcion ]] && vacio && sleep 0.3 && continue
  752. [[ $opcion = 0 ]] && break
  753. [[ ! $opcion =~ $numero ]] && {
  754. blanco " solo numeros apartir de 1"
  755. sleep 0.3
  756. } || {
  757. let n--
  758. [[ $opcion>=${n} ]] && {
  759. blanco "solo numero entre 1 y $n"
  760. sleep 0.3
  761. } || {
  762. [[ $opcion>=${p} ]] && {
  763. sed -i "/${expUser[$opcion]}/d" $user_conf
  764. } || {
  765. mv $config $temp
  766. sed -i "/${expUser[$opcion]}/d" $user_conf
  767. sed "/${userd[$opcion]}/ d" $temp > $config
  768. chmod 777 $config
  769. rm $temp
  770. clear
  771. msg -bar
  772. blanco " Usuario ${userd[$opcion]}${expUser[$opcion]} eliminado"
  773. msg -bar
  774. sleep 0.5s
  775. }
  776. }
  777. }
  778. done
  779. restroj
  780. }
  781. bakc() {
  782. clear
  783. while :
  784. do
  785. clear
  786. #col "5)" "\033[1;33mCONFIGURAR Trojan"
  787. msg -bar
  788. col "1)" "\033[1;33mRestaurar Copia"
  789. msg -bar
  790. col "2)" "\033[1;33mCrear Copia"
  791. msg -bar
  792. col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
  793. msg -bar
  794. blanco "opcion" 0
  795. read opcion
  796. case $opcion in
  797. 1)[[ -e config.json ]] && cp config.json /usr/local/etc/trojan/config.json || echo "No existe Copia";;
  798. 2)[[ -e /usr/local/etc/trojan/config.json ]] && cp /usr/local/etc/trojan/config.json config.json || echo "No existe Copia";;
  799. 0) break;;
  800. *) blanco "\n selecione una opcion del 0 al 2" && sleep 0.3;;
  801. esac
  802. done
  803. }
  804. reintro() {
  805. clear
  806. while :
  807. do
  808. clear
  809. #col "5)" "\033[1;33mCONFIGURAR Trojan"
  810. msg -bar
  811. col "1)" "\033[1;33mReinstalar Servicio"
  812. msg -bar
  813. col "2)" "\033[1;33mReiniciar Servicio"
  814. msg -bar
  815. col "3)" "\033[1;33mEditar Manual ( nano )"
  816. msg -bar
  817. col "4)" "\033[1;33mREGISTRAR DOMINIO "
  818. msg -bar
  819. col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
  820. msg -bar
  821. blanco "opcion" 0
  822. read opcion
  823. case $opcion in
  824. 1)
  825. trojan
  826. ;;
  827. 2)
  828. [[ -e /usr/local/etc/trojan/config.json ]] && {
  829. title "Fichero Interno Configurado"
  830. restroj
  831. } || echo -e "Servicio No instalado Aun"
  832. ;;
  833. 3)
  834. nano /usr/local/etc/trojan/config.json
  835. ;;
  836. 4)
  837. dmn=$(echo "$(ls /root/.acme.sh | grep '_ecc')" | sed 's/_ecc//')
  838. echo -e " INGRESA TU DOMINIO REGISTRADO EN TU CERTIFICADO "
  839. echo -e " + OJO +"
  840. echo -e " Si validaste tu certificado con dominio ACME"
  841. echo -e " Se tomara tu dominio automatico"
  842. read -p " DIGITA TU DOMINIO : " -e -i $dmn domain
  843. echo "$domain" > /etc/adm-lite/trojancert/domain
  844. ;;
  845. 0) break;;
  846. *) blanco "\n selecione una opcion del 0 al 3" && sleep 0.3;;
  847. esac
  848. done
  849. continuar
  850. read foo
  851. }
  852. cattro () {
  853. clear
  854. while :
  855. do
  856. clear
  857. #col "5)" "\033[1;33mCONFIGURAR Trojan"
  858. msg -bar
  859. col "1)" "\033[1;33mMostrar fichero de CONFIG "
  860. msg -bar
  861. col "2)" "\033[1;33mEditar Config Manual ( Comando nano )"
  862. msg -bar
  863. col "3)" "\033[1;33m Cambiar RUTA CERTIFICADO"
  864. msg -bar
  865. col "4)" "\033[1;33m CAMBIAR SNI INTERNO"
  866. msg -bar
  867. col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
  868. msg -bar
  869. blanco "opcion" 0
  870. read opcion
  871. case $opcion in
  872. 1)
  873. title "Fichero Interno Configurado"
  874. cat /usr/local/etc/trojan/config.json
  875. blanco "Fin Fichero "
  876. continuar
  877. read foo
  878. ;;
  879. 2)
  880. [[ -e /usr/local/etc/trojan/config.json ]] && {
  881. title "Fichero Interno Configurado"
  882. nano /usr/local/etc/trojan/config.json
  883. restroj
  884. } || echo -e "Servicio No instalado Aun"
  885. ;;
  886. 3)
  887. changeCERT
  888. restroj
  889. ;;
  890. 4)
  891. changeSNI
  892. restroj
  893. ;;
  894. 0) break;;
  895. *) blanco "\n selecione una opcion del 0 al 2" && sleep 0.3;;
  896. esac
  897. done
  898. continuar
  899. }
  900. view_user(){
  901. trojanport=`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`;
  902. trojanport=$(cat /etc/adm-lite/trojanports.txt | sed 's/\s\+/,/g' | cut -d , -f1)
  903. unset seg
  904. seg=$(date +%s)
  905. while :
  906. do
  907. clear
  908. nick="$(cat $config | grep ',"')"
  909. users="$(echo $nick|sed -e 's/[^a-z0-9 -]//ig')"
  910. title " VER USUARIO TROJAN"
  911. userDat
  912. n=1
  913. for i in $users
  914. do
  915. unset DateExp
  916. unset seg_exp
  917. unset exp
  918. [[ $i = "$(cat < ${user_conf}adm)" ]] && {
  919. i="$(cat < ${user_conf}adm)"
  920. DateExp="【 I N D E F I N I D O 】"
  921. } || {
  922. [[ $i = "chumoghscript" ]] && {
  923. i="ADM-SCRIPT"
  924. DateExp="【 I N D E F I N I D O 】"
  925. } || {
  926. DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
  927. seg_exp=$(date +%s --date="$DateExp")
  928. exp="[$(($(($seg_exp - $seg)) / 86400))]"
  929. }
  930. }
  931. col "$n)" "$i" "$DateExp" "$exp"
  932. let n++
  933. done
  934. msg -bar
  935. col "0)" "VOLVER"
  936. msg -bar
  937. blanco "VER DATOS DEL USUARIO" 0
  938. read opcion
  939. [[ -z $opcion ]] && vacio && sleep 0.3 && continue
  940. [[ $opcion = 0 ]] && break
  941. n=1
  942. unset i
  943. for i in $users
  944. do
  945. unset DateExp
  946. unset seg_exp
  947. unset exp
  948. DateExp="$(cat ${user_conf}|grep -w "${i}"|cut -d'|' -f3)"
  949. seg_exp=$(date +%s --date="$DateExp")
  950. exp="[$(($(($seg_exp - $seg)) / 86400))]"
  951. #col "$n)" "$i" "$DateExp" "$exp"
  952. [[ $n = $opcion ]] && trojanpass=$i && dataEX=$DateExp && dEX=$exp
  953. let n++
  954. done
  955. let opcion--
  956. addip=$(wget -qO- ifconfig.me)
  957. host=$(cat /usr/local/etc/trojan/config.json | jq -r .ssl.sni)
  958. [[ $host = null ]] && read -p " Host / SNI : " host
  959. [[ -z $host ]] && host="null"
  960. clear&&clear
  961. blanco $barra
  962. blanco " TROJAN LINK CONFIG"
  963. blanco $barra
  964. col "$opcion)" "$trojanpass" "$dataEX" "$dEX"
  965. trojan_conf
  966. blanco $barra
  967. continuar
  968. read foo
  969. done
  970. }
  971. trojan_conf (){
  972. [[ -e /etc/adm-lite/trojancert/domain ]] && domain=$(cat < /etc/adm-lite/trojancert/domain)
  973. msg -bar
  974. col2 " Remarks : " "$trojanpass"
  975. [[ -z $domain ]] || col2 " DOMAIN : " "$domain"
  976. col2 " IP-Address: " "$addip"
  977. col2 " Port : " "$trojanport"
  978. col2 " Password : " "$trojanpass"
  979. [[ $(cat $config | jq -r .websocket.enabled) = "true" ]] && col2 " NetWork : " "WS/TCP" || col2 " NetWork : " "TCP"
  980. [[ ! -z $host ]] && col2 " Host/SNI : " "$host"
  981. msg -bar3
  982. echo " CONFIG TCP NATIVA"
  983. echo -e "\033[3;32m trojan://$(echo $trojanpass@$addip:$trojanport?sni=$host#$trojanpass )\033[3;32m"
  984. msg -bar3
  985. echo -ne "$(msg -verd "") $(msg -verm2 " ") "&& msg -bra "\033[1;41mEn APPS como HTTP Inyector,CUSTOM,Trojan,etc"
  986. [[ $(cat $config | jq -r .websocket.enabled) = "true" ]] && echo -e "\033[3;32m trojan://$trojanpass@$IP:$trojanport?path=%2F&security=tls&type=ws&sni=$host\033[3;32m" || echo -e "\033[3;32m trojan://$(echo $trojanpass@$addip:$trojanport?sni=$host#$trojanpass )\033[3;32m"
  987. msg -bar
  988. [[ -z $domain ]] || echo -e "\033[3;32m trojan://$(echo $trojanpass@$domain:$trojanport?sni=$host#$trojanpass )\033[3;32m"
  989. }
  990. main(){
  991. [[ ! -e $config ]] && {
  992. clear
  993. msg -bar
  994. blanco " No se encontro ningun archovo de configracion Trojan"
  995. msg -bar
  996. blanco " No instalo Trojan o esta usando\n una vercion diferente!!!"
  997. msg -bar
  998. echo -e " \033[4;31mNOTA importante\033[0m"
  999. echo -e " \033[0;31mSi esta usando una vercion Trojan diferente"
  1000. echo -e " y opta por cuntinuar usando este script."
  1001. echo -e " Este puede; no funcionar correctamente"
  1002. echo -e " y causar problemas en futuras instalaciones.\033[0m"
  1003. msg -bar
  1004. continuar
  1005. read foo
  1006. }
  1007. while :
  1008. do
  1009. _usor=$(printf '%-8s' "$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')")
  1010. _usop=$(printf '%-1s' "$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')")
  1011. [[ -e /bin/troj.sh ]] && enrap="\033[1;92m[Encendido]" || enrap="\033[0;31m[Apagado]"
  1012. clear
  1013. title2
  1014. title " Ram: \033[1;32m$_usor \033[0;31m<<< \033[1;37mMENU Trojan \033[0;31m>>> \033[1;37mCPU: \033[1;32m$_usop"
  1015. col "1)" "CREAR USUARIO "
  1016. col "2)" "\033[0;92mRENOVAR USUARIO "
  1017. col "3)" "\033[0;31mREMOVER USUARIO "
  1018. col "4)" "VER DATOS DE USUARIOS "
  1019. col "5)" "VER USUARIOS CONECTADOS "
  1020. #col "5)" "\033[1;33mCONFIGURAR Trojan"
  1021. msg -bar
  1022. col "6)" "\033[1;33mEntrada Rapida $enrap"
  1023. msg -bar
  1024. col "7)" "\033[1;33mMostrar/Editar Fichero interno"
  1025. col "8)" "\033[1;33mMenu Avanzado Trojan"
  1026. col "9)" "\033[1;33mConf. Copias de Respaldo"
  1027. msg -bar
  1028. col "0)" "SALIR \033[0;31m|| $(blanco "Respaldos automaticos") $(on_off_res)"
  1029. msg -bar
  1030. blanco "opcion" 0
  1031. read opcion
  1032. case $opcion in
  1033. 1)add_user;;
  1034. 2)renew;;
  1035. 3)dell_user;;
  1036. 4)view_user;;
  1037. 5)log_traff;;
  1038. 6)enttrada;;
  1039. 7)cattro;;
  1040. 8)reintro;;
  1041. 9)backups;;
  1042. 10)log_traff;;
  1043. 0) break;;
  1044. *) blanco "\n selecione una opcion del 0 al 10" && sleep 0.3s;;
  1045. esac
  1046. done
  1047. }
  1048. [[ $1 = "restart" ]] && restroj
  1049. [[ $1 = "autoDel" ]] && {
  1050. autoDel
  1051. } || {
  1052. autoDel
  1053. main
  1054. }