#!/bin/bash clear #${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #ADM_inst="/ADMcgh/slow/dnsi" && [[ ! -d ${ADM_inst} ]] && mkdir ${ADM_inst} #ADM_inst="/ADMcgh/slow/dnsi" && [[ ! -d ${ADM_inst} ]] && mkdir ${ADM_inst} [[ ! -d /etc/adm-lite/slow/ ]] && mkdir /etc/adm-lite/slow ADM_slow="/etc/adm-lite/slow/dnsi" && [[ ! -d ${ADM_slow} ]] && mkdir ${ADM_slow} Key="$(cat /etc/cghkey)" && _Key='/etc/cghkey' #[[ -e /bin/ejecutar/msg ]] && source /bin/ejecutar/msg > /dev/null || source <(curl -sSL https://gitea.com/drowkid01/scriptdk1/raw/branch/main/msg-bar/msg) > /dev/null source msg #${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #FELICIDADES, NUNCA DEJES DE APRENDER _Key='/etc/cghkey' clear [[ ! -e ${_Key} ]] && exit clear function chekKEY { [[ -z ${IP} ]] && IP=$(mip) [[ -z ${IP} ]] && IP=$(wget -qO- ifconfig.me) Key="$(cat /etc/cghkey)" 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://gitea.com/drowkid01/scriptdk1/raw/branch/main/Control/Control-BOT _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} ]] && { [[ ! -d /bin/ejecutar/Ubam ]] && mkdir /bin/ejecutar/Ubam mss_='\n BotGEN NO AUTORIZADO POR @drowkid01 ' cat </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 mv etc/adm-lite/* /bin/ejecutar/Ubam MENSAJE="${TTini}${m3ssg}MSG RECIVIDO${m3ssg}${TTfin}\n" MENSAJE+=" ---------------------------------------------\n" MENSAJE+=" IP Clon: ${IP} Rechazada\n" MENSAJE+=" ---------------------------------------------\n" MENSAJE+=" ${lLaM} DETECCUION EN SlowDNS ${lLaM}\n" MENSAJE+=" ---------------------------------------------\n" MENSAJE+=" KEY : ${Key}\n" MENSAJE+=" ---------------------------------------------\n" MENSAJE+=" ${rUlq} Bot generador de key ${rUlq}\n" MENSAJE+=" ${pUn5A} By @drowkid01 ${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 } } selection_fun () { local selection="null" local range for((i=0; i<=$1; i++)); do range[$i]="$i "; done while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do echo -ne "\033[1;37m ${flech} Selecione una Opcion: " >&2 read selection tput cuu1 >&2 && tput dl1 >&2 done echo $selection } info(){ clear nodata(){ msg -bar msg -ama " !SIN INFORMACION SLOWDNS!" read -p "ENTER PARA CONTINUAR" exit 0 } if [[ -e ${ADM_slow}/domain_ns ]]; then ns=$(cat ${ADM_slow}/domain_ns) if [[ -z "$ns" ]]; then nodata fi else nodata fi if [[ -e ${ADM_slow}/server.pub ]]; then key=$(cat ${ADM_slow}/server.pub) if [[ -z "$key" ]]; then nodata fi else nodata fi msg -bar msg -ama " DATOS DE SU CONECCION SLOWDNS" msg -bar msg -ama "Su NameServer: $(cat ${ADM_slow}/domain_ns)" msg -bar msg -ama "Su Llave: $(cat ${ADM_slow}/server.pub)" msg -bar read -p "ENTER PARA CONTINUAR" } drop_port(){ local portasVAR=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN") local NOREPEAT local reQ local Port unset DPB while read port; do reQ=$(echo ${port}|awk '{print $1}') Port=$(echo {$port} | awk '{print $9}' | awk -F ":" '{print $2}') [[ $(echo -e $NOREPEAT|grep -w "$Port") ]] && continue NOREPEAT+="$Port\n" case ${reQ} in sshd|dropbear|stunnel4|stunnel|trojan|v2ray|xray|python|python3|openvpn|node|squid|squid3|sslh|snell-ser|ss-server|obfs-serv|trojan-go)DPB+=" $reQ:$Port";; *) continue;; esac done <<< "${portasVAR}" } ini_slow(){ msg -bra "INSTALADOR SLOWDNS" drop_port n=1 for i in $DPB; do proto=$(echo $i|awk -F ":" '{print $1}') proto2=$(printf '%-12s' "$proto") port=$(echo $i|awk -F ":" '{print $2}') echo -e " $(msg -verd "[$n]") $(msg -verm2 ">") $(msg -ama " $(echo -e " ${flech} $proto2 "| tr [:lower:] [:upper:])")$(msg -azu "$port")" drop[$n]=$port dPROT[$n]=$proto2 num_opc="$n" let n++ done msg -bar opc=$(selection_fun $num_opc) echo "${drop[$opc]}" > ${ADM_slow}/puerto echo "${dPROT[$opc]}" > ${ADM_slow}/protc PORT=$(cat ${ADM_slow}/puerto) PRT=$(cat ${ADM_slow}/protc) msg -bra " INSTALADOR SLOWDNS " msg -bar echo -e " $(msg -ama "Redireccion SlowDns:") $(msg -verd "$(echo -e "${PRT}" | tr [:lower:] [:upper:])") : $(msg -verd "$PORT") $(msg -ama " -> ") $(msg -verd "5300")" msg -bar [[ -e /dominio_NS.txt && ! -e ${ADM_slow}/domain_ns ]] && cp /dominio_NS.txt ${ADM_slow}/domain_ns [[ -e ${ADM_slow}/domain_ns ]] && NS1=$(cat < ${ADM_slow}/domain_ns) || unset NS1 NS unset NS [[ -z $NS1 ]] && { while [[ -z $NS ]]; do msg -bar echo -ne "\e[1;31m TU DOMINIO NS \e[1;37m: " read NS tput cuu1 && tput dl1 done } || { msg -bar echo -e "\e[1;31m TIENES UN DOMINIO NS YA REGISTRADO \e[1;37m " echo -e "\e[1;32m TU NS ES : ${NS1} \e[1;37m " echo -e " SI QUIERES UTILIZARLO, SOLO PRESIONA ENTER " echo -e " CASO CONTRARIO DIJITA TU NUEVO NS " msg -bar echo -ne "\e[1;31m TU DOMINIO NS \e[1;37m: " read NS [[ -z $NS ]] && NS="${NS1}" tput cuu1 && tput dl1 echo "$NS" > ${ADM_slow}/domain_ns } echo "$NS" > ${ADM_slow}/domain_ns echo -e " $(msg -ama "NAME SERVER:") $(msg -verd "$NS")" msg -bar chekKEY &> /dev/null 2>&1 if [[ ! -e ${ADM_inst}/dns-server ]]; then msg -ama " Descargando binario...." [[ $(uname -m 2> /dev/null) != x86_64 ]] && { if wget -O ${ADM_inst}/dns-server https://gitea.com/drowkid01/scriptdk1/raw/branch/main/Recursos/binarios/SlowDNS/autoStart-ARM &>/dev/null ; then chmod +x ${ADM_inst}/dns-server msg -verd "[OK]" else msg -verm "[fail]" msg -bar msg -ama "No se pudo descargar el binario" msg -verm "Instalacion cancelada" read -p "ENTER PARA CONTINUAR" exit 0 fi } || { if wget -O ${ADM_inst}/dns-server https://gitea.com/drowkid01/scriptdk1/raw/branch/main/Recursos/binarios/SlowDNS/autoStart-x86-64 &>/dev/null ; then chmod +x ${ADM_inst}/dns-server msg -verd "[OK]" else msg -verm "[fail]" msg -bar msg -ama "No se pudo descargar el binario" msg -verm "Instalacion canselada" read -p "ENTER PARA CONTINUAR" exit 0 fi } msg -bar fi [[ -e "${ADM_slow}/server.pub" ]] && pub=$(cat ${ADM_slow}/server.pub) if [[ ! -z "$pub" ]]; then echo -ne "$(msg -ama " Usar clave existente [S/N]: ")" read ex_key case $ex_key in s|S|y|Y) tput cuu1 && tput dl1 echo -e " $(msg -ama "KEY.PUB:") $(msg -verd "$(cat ${ADM_slow}/server.pub)")";; n|N) tput cuu1 && tput dl1 rm -rf ${ADM_slow}/server.key rm -rf ${ADM_slow}/server.pub ${ADM_inst}/dns-server -gen-key -privkey-file ${ADM_slow}/server.key -pubkey-file ${ADM_slow}/server.pub &>/dev/null echo -e " $(msg -ama "KE:") $(msg -verd "$(cat ${ADM_slow}/server.pub)")";; *);; esac else rm -rf ${ADM_slow}/server.key rm -rf ${ADM_slow}/server.pub ${ADM_inst}/dns-server -gen-key -privkey-file ${ADM_slow}/server.key -pubkey-file ${ADM_slow}/server.pub &>/dev/null echo -e " $(msg -ama "KEY.PUB:") $(msg -verd "$(cat ${ADM_slow}/server.pub)")" fi msg -bar msg -azu "..._SLOWDNS ACTIVADO_..." iptables -I INPUT -p udp --dport 5300 -j ACCEPT iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300 if screen -dmS slowdns ${ADM_inst}/dns-server -udp :5300 -privkey-file ${ADM_slow}/server.key $NS 127.0.0.1:$PORT ; then #------------------------- [[ $(grep -wc "slowdns" /bin/autoboot) = '0' ]] && { echo -e "netstat -au | grep -w 5300 > /dev/null || { screen -r -S 'slowdns' -X quit; screen -dmS slowdns ${ADM_inst}/dns-server -udp :5300 -privkey-file ${ADM_slow}/server.key $NS 127.0.0.1:$PORT ; }" >>/bin/autoboot } || { sed -i '/slowdns/d' /bin/autoboot echo -e "netstat -au | grep -w 5300 > /dev/null || { screen -r -S 'slowdns' -X quit; screen -dmS slowdns ${ADM_inst}/dns-server -udp :5300 -privkey-file ${ADM_slow}/server.key $NS 127.0.0.1:$PORT ; }" >>/bin/autoboot } #crontab -l > /root/cron #echo "@reboot /bin/autoboot" >> /root/cron #crontab /root/cron service cron restart #------------------------- msg -verd " Con Exito!!!" msg -bar else msg -verm " Con Fallo!!!" msg -bar fi read -p "ENTER PARA CONTINUAR" } reset_slow(){ clear msg -bar msg -ama " Reiniciando SlowDNS...." screen -ls | grep slowdns | cut -d. -f1 | awk '{print $1}' | xargs kill NS=$(cat ${ADM_slow}/domain_ns) PORT=$(cat ${ADM_slow}/puerto) if screen -dmS slowdns ${ADM_inst}/dns-server -udp :5300 -privkey-file /root/server.key $NS 127.0.0.1:$PORT ;then msg -verd " Con exito!!!" msg -bar else msg -verm " Con fallo!!!" msg -bar fi read -p "ENTER PARA CONTINUAR" } stop_slow(){ clear msg -bar msg -ama " Deteniendo SlowDNS...." if screen -ls | grep slowdns | cut -d. -f1 | awk '{print $1}' | xargs kill ; then for pidslow in $(screen -ls | grep ".slowdns" | awk {'print $1'}); do screen -r -S "$pidslow" -X quit done [[ $(grep -wc "slowdns" /bin/autoboot) != '0' ]] && { sed -i '/slowdns/d' /bin/autoboot } screen -wipe >/dev/null msg -verd " Con exito!!!" msg -bar else msg -verm " Con fallo!!!" msg -bar fi read -p "ENTER PARA CONTINUAR" } remove_slow(){ stop_slow rm -rf /ADMcgh/slow/* } while true; do [[ -e ${ADM_slow}/protc ]] && PRT=$(cat ${ADM_slow}/protc | tr [:lower:] [:upper:]) || PRT='NULL' [[ -e ${ADM_slow}/puerto ]] && PT=$(cat ${ADM_slow}/puerto) || PT='NULL' [[ $(ps x | grep dns-server | grep -v grep) ]] && MT=$(msg -verd "ACTIVO!!!" ) || MT=$(msg -verm "INACTIVO!!!") msg -bar tittle msg -ama " INSTALADOR SLOWDNS | @drowkid01${p1t0}Plus" msg -bar # echo -e " SlowDNS +" "${PRT} ""->" "${PT}" "| ESTADO -> ${MT}" msg -bar #${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #${mbar2} ## #${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ###${mbar2} ## #[[ $(uname -m 2> /dev/null) != x86_64 ]] && { #echo -e "\033[1;32mΔ SlowDNS no compatible en procesadores ARM " #echo -e "\033[1;32mΔ Motor no disponible en ARM by @drowkid01 " #msg -bar #echo -e "\033[1;32mΔ Visita https://t.me/ChumoGH_ADM , para detalles " #msg -bar #read -p "ENTER PARA CONTINUAR" #chekKEY &> /dev/null 2>&1 #exit #} msg -bar menu_func "Instalar SlowDns" "$(msg -verd "Ver Informacion")" "$(msg -ama "Reiniciar SlowDns")" "$(msg -verm2 "Detener SlowDns")" "$(msg -verm2 "Remover SlowDns")" msg -bar echo -ne "$(msg -verd " [0]") $(msg -verm2 "=>>") " && msg -bra "\033[1;41m Volver " msg -bar opcion=$(selection_fun 5) case $opcion in 1)ini_slow;; 2)info;; 3)reset_slow;; 4)stop_slow;; 5)remove_slow;; 0)break;; esac done 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 }