NetVPS 3 年 前
コミット
eeaaf19e1d
41 ファイル変更6162 行追加0 行削除
  1. 1396 0
      Omar-SSHPLUS-OLD/Instalador-Shadowsocks-libev.sh
  2. BIN
      Omar-SSHPLUS-OLD/Pendientes/lj.sh
  3. BIN
      Omar-SSHPLUS-OLD/Pendientes/op.sh
  4. BIN
      Omar-SSHPLUS-OLD/Pendientes/pay.sh
  5. BIN
      Omar-SSHPLUS-OLD/Pendientes/sd.sh
  6. BIN
      Omar-SSHPLUS-OLD/Pendientes/sd1.sh
  7. BIN
      Omar-SSHPLUS-OLD/Pendientes/u.sh
  8. BIN
      Omar-SSHPLUS-OLD/Pendientes/v.sh
  9. BIN
      Omar-SSHPLUS-OLD/Pendientes/w.sh
  10. BIN
      Omar-SSHPLUS-OLD/Pendientes/x.sh
  11. BIN
      Omar-SSHPLUS-OLD/Pendientes/y.sh
  12. 4 0
      Omar-SSHPLUS-OLD/amor.sh
  13. 31 0
      Omar-SSHPLUS-OLD/amor2.sh
  14. 20 0
      Omar-SSHPLUS-OLD/ap.sh
  15. 28 0
      Omar-SSHPLUS-OLD/au.sh
  16. 389 0
      Omar-SSHPLUS-OLD/auto.sh
  17. 7 0
      Omar-SSHPLUS-OLD/autoiniciossl.sh
  18. BIN
      Omar-SSHPLUS-OLD/badvpn-udpgw
  19. 44 0
      Omar-SSHPLUS-OLD/bloquear.sh
  20. 294 0
      Omar-SSHPLUS-OLD/c.sh
  21. 43 0
      Omar-SSHPLUS-OLD/cuss.sh
  22. 328 0
      Omar-SSHPLUS-OLD/d.sh
  23. 302 0
      Omar-SSHPLUS-OLD/dd.sh
  24. 267 0
      Omar-SSHPLUS-OLD/ddd.sh
  25. 45 0
      Omar-SSHPLUS-OLD/desbloquear.sh
  26. 3 0
      Omar-SSHPLUS-OLD/desis.sh
  27. 49 0
      Omar-SSHPLUS-OLD/eliminar.sh
  28. 6 0
      Omar-SSHPLUS-OLD/fg.sh
  29. 25 0
      Omar-SSHPLUS-OLD/instalarssl.sh
  30. 521 0
      Omar-SSHPLUS-OLD/jail.sh
  31. 35 0
      Omar-SSHPLUS-OLD/jk.sh
  32. 398 0
      Omar-SSHPLUS-OLD/jl.sh
  33. 88 0
      Omar-SSHPLUS-OLD/jls.sh
  34. 583 0
      Omar-SSHPLUS-OLD/jrd.sh
  35. 194 0
      Omar-SSHPLUS-OLD/listausuarios.sh
  36. 233 0
      Omar-SSHPLUS-OLD/menu
  37. 181 0
      Omar-SSHPLUS-OLD/menu.sh
  38. 267 0
      Omar-SSHPLUS-OLD/proxy.py
  39. 122 0
      Omar-SSHPLUS-OLD/sl.sh
  40. 240 0
      Omar-SSHPLUS-OLD/te.py
  41. 19 0
      Omar-SSHPLUS-OLD/y.sh

+ 1396 - 0
Omar-SSHPLUS-OLD/Instalador-Shadowsocks-libev.sh

@@ -0,0 +1,1396 @@
+#!/usr/bin/env bash
+PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
+export PATH
+#
+# Auto install Shadowsocks Server (all version)
+#
+# Copyright (C) 2016-2019 Teddysun <i@teddysun.com>
+#
+# System Required:  CentOS 6+, Debian7+, Ubuntu12+
+#
+# Reference URL:
+# https://github.com/shadowsocks/shadowsocks
+# https://github.com/shadowsocks/shadowsocks-go
+# https://github.com/shadowsocks/shadowsocks-libev
+# https://github.com/shadowsocks/shadowsocks-windows
+# https://github.com/shadowsocksr-rm/shadowsocksr
+# https://github.com/shadowsocksrr/shadowsocksr
+# https://github.com/shadowsocksrr/shadowsocksr-csharp
+#
+# Thanks:
+# @clowwindy  <https://twitter.com/clowwindy>
+# @breakwa11  <https://twitter.com/breakwa11>
+# @cyfdecyf   <https://twitter.com/cyfdecyf>
+# @madeye     <https://github.com/madeye>
+# @linusyang  <https://github.com/linusyang>
+# @Akkariiin  <https://github.com/Akkariiin>
+# 
+# Intro:  https://teddysun.com/486.html
+
+red='\033[0;31m'
+green='\033[0;32m'
+yellow='\033[0;33m'
+plain='\033[0m'
+
+[[ $EUID -ne 0 ]] && echo -e "[${red}Error${plain}] This script must be run as root!" && exit 1
+
+cur_dir=$( pwd )
+software=(Shadowsocks-Python ShadowsocksR Shadowsocks-Go Shadowsocks-libev)
+
+libsodium_file="libsodium-1.0.17"
+libsodium_url="https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz"
+
+mbedtls_file="mbedtls-2.16.0"
+mbedtls_url="https://tls.mbed.org/download/mbedtls-2.16.0-gpl.tgz"
+
+shadowsocks_python_file="shadowsocks-master"
+shadowsocks_python_url="https://github.com/shadowsocks/shadowsocks/archive/master.zip"
+shadowsocks_python_init="/etc/init.d/shadowsocks-python"
+shadowsocks_python_config="/etc/shadowsocks-python/config.json"
+shadowsocks_python_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks"
+shadowsocks_python_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-debian"
+
+shadowsocks_r_file="shadowsocksr-3.2.2"
+shadowsocks_r_url="https://github.com/shadowsocksrr/shadowsocksr/archive/3.2.2.tar.gz"
+shadowsocks_r_init="/etc/init.d/shadowsocks-r"
+shadowsocks_r_config="/etc/shadowsocks-r/config.json"
+shadowsocks_r_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR"
+shadowsocks_r_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR-debian"
+
+shadowsocks_go_file_64="shadowsocks-server-linux64-1.2.2"
+shadowsocks_go_url_64="https://dl.lamp.sh/shadowsocks/shadowsocks-server-linux64-1.2.2.gz"
+shadowsocks_go_file_32="shadowsocks-server-linux32-1.2.2"
+shadowsocks_go_url_32="https://dl.lamp.sh/shadowsocks/shadowsocks-server-linux32-1.2.2.gz"
+shadowsocks_go_init="/etc/init.d/shadowsocks-go"
+shadowsocks_go_config="/etc/shadowsocks-go/config.json"
+shadowsocks_go_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go"
+shadowsocks_go_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go-debian"
+
+shadowsocks_libev_init="/etc/init.d/shadowsocks-libev"
+shadowsocks_libev_config="/etc/shadowsocks-libev/config.json"
+shadowsocks_libev_centos="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev"
+shadowsocks_libev_debian="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian"
+
+# Stream Ciphers
+common_ciphers=(
+aes-256-gcm
+aes-192-gcm
+aes-128-gcm
+aes-256-ctr
+aes-192-ctr
+aes-128-ctr
+aes-256-cfb
+aes-192-cfb
+aes-128-cfb
+camellia-128-cfb
+camellia-192-cfb
+camellia-256-cfb
+xchacha20-ietf-poly1305
+chacha20-ietf-poly1305
+chacha20-ietf
+chacha20
+salsa20
+rc4-md5
+)
+go_ciphers=(
+aes-256-cfb
+aes-192-cfb
+aes-128-cfb
+aes-256-ctr
+aes-192-ctr
+aes-128-ctr
+chacha20-ietf
+chacha20
+salsa20
+rc4-md5
+)
+r_ciphers=(
+none
+aes-256-cfb
+aes-192-cfb
+aes-128-cfb
+aes-256-cfb8
+aes-192-cfb8
+aes-128-cfb8
+aes-256-ctr
+aes-192-ctr
+aes-128-ctr
+chacha20-ietf
+chacha20
+salsa20
+xchacha20
+xsalsa20
+rc4-md5
+)
+# Reference URL:
+# https://github.com/shadowsocksr-rm/shadowsocks-rss/blob/master/ssr.md
+# https://github.com/shadowsocksrr/shadowsocksr/commit/a3cf0254508992b7126ab1151df0c2f10bf82680
+# Protocol
+protocols=(
+origin
+verify_deflate
+auth_sha1_v4
+auth_sha1_v4_compatible
+auth_aes128_md5
+auth_aes128_sha1
+auth_chain_a
+auth_chain_b
+auth_chain_c
+auth_chain_d
+auth_chain_e
+auth_chain_f
+)
+# obfs
+obfs=(
+plain
+http_simple
+http_simple_compatible
+http_post
+http_post_compatible
+tls1.2_ticket_auth
+tls1.2_ticket_auth_compatible
+tls1.2_ticket_fastauth
+tls1.2_ticket_fastauth_compatible
+)
+# libev obfuscating
+obfs_libev=(http tls)
+# initialization parameter
+libev_obfs=""
+
+disable_selinux(){
+    if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
+        sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
+        setenforce 0
+    fi
+}
+
+check_sys(){
+    local checkType=$1
+    local value=$2
+
+    local release=''
+    local systemPackage=''
+
+    if [[ -f /etc/redhat-release ]]; then
+        release="centos"
+        systemPackage="yum"
+    elif grep -Eqi "debian|raspbian" /etc/issue; then
+        release="debian"
+        systemPackage="apt"
+    elif grep -Eqi "ubuntu" /etc/issue; then
+        release="ubuntu"
+        systemPackage="apt"
+    elif grep -Eqi "centos|red hat|redhat" /etc/issue; then
+        release="centos"
+        systemPackage="yum"
+    elif grep -Eqi "debian|raspbian" /proc/version; then
+        release="debian"
+        systemPackage="apt"
+    elif grep -Eqi "ubuntu" /proc/version; then
+        release="ubuntu"
+        systemPackage="apt"
+    elif grep -Eqi "centos|red hat|redhat" /proc/version; then
+        release="centos"
+        systemPackage="yum"
+    fi
+
+    if [[ "${checkType}" == "sysRelease" ]]; then
+        if [ "${value}" == "${release}" ]; then
+            return 0
+        else
+            return 1
+        fi
+    elif [[ "${checkType}" == "packageManager" ]]; then
+        if [ "${value}" == "${systemPackage}" ]; then
+            return 0
+        else
+            return 1
+        fi
+    fi
+}
+
+version_ge(){
+    test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"
+}
+
+version_gt(){
+    test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"
+}
+
+check_kernel_version(){
+    local kernel_version=$(uname -r | cut -d- -f1)
+    if version_gt ${kernel_version} 3.7.0; then
+        return 0
+    else
+        return 1
+    fi
+}
+
+check_kernel_headers(){
+    if check_sys packageManager yum; then
+        if rpm -qa | grep -q headers-$(uname -r); then
+            return 0
+        else
+            return 1
+        fi
+    elif check_sys packageManager apt; then
+        if dpkg -s linux-headers-$(uname -r) > /dev/null 2>&1; then
+            return 0
+        else
+            return 1
+        fi
+    fi
+    return 1
+}
+
+getversion(){
+    if [[ -s /etc/redhat-release ]]; then
+        grep -oE  "[0-9.]+" /etc/redhat-release
+    else
+        grep -oE  "[0-9.]+" /etc/issue
+    fi
+}
+
+centosversion(){
+    if check_sys sysRelease centos; then
+        local code=$1
+        local version="$(getversion)"
+        local main_ver=${version%%.*}
+        if [ "$main_ver" == "$code" ]; then
+            return 0
+        else
+            return 1
+        fi
+    else
+        return 1
+    fi
+}
+
+autoconf_version(){
+    if [ ! "$(command -v autoconf)" ]; then
+        echo -e "[${green}Info${plain}] Starting install package autoconf"
+        if check_sys packageManager yum; then
+            yum install -y autoconf > /dev/null 2>&1 || echo -e "[${red}Error:${plain}] Failed to install autoconf"
+        elif check_sys packageManager apt; then
+            apt-get -y update > /dev/null 2>&1
+            apt-get -y install autoconf > /dev/null 2>&1 || echo -e "[${red}Error:${plain}] Failed to install autoconf"
+        fi
+    fi
+    local autoconf_ver=$(autoconf --version | grep autoconf | grep -oE "[0-9.]+")
+    if version_ge ${autoconf_ver} 2.67; then
+        return 0
+    else
+        return 1
+    fi
+}
+
+get_ip(){
+    local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 )
+    [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com )
+    [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip )
+    echo ${IP}
+}
+
+get_ipv6(){
+    local ipv6=$(wget -qO- -t1 -T2 ipv6.icanhazip.com)
+    [ -z ${ipv6} ] && return 1 || return 0
+}
+
+get_libev_ver(){
+    libev_ver=$(wget --no-check-certificate -qO- https://api.github.com/repos/shadowsocks/shadowsocks-libev/releases/latest | grep 'tag_name' | cut -d\" -f4)
+    [ -z ${libev_ver} ] && echo -e "[${red}Error${plain}] Get shadowsocks-libev latest version failed" && exit 1
+}
+
+get_opsy(){
+    [ -f /etc/redhat-release ] && awk '{print ($1,$3~/^[0-9]/?$3:$4)}' /etc/redhat-release && return
+    [ -f /etc/os-release ] && awk -F'[= "]' '/PRETTY_NAME/{print $3,$4,$5}' /etc/os-release && return
+    [ -f /etc/lsb-release ] && awk -F'[="]+' '/DESCRIPTION/{print $2}' /etc/lsb-release && return
+}
+
+is_64bit(){
+    if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then
+        return 0
+    else
+        return 1
+    fi
+}
+
+debianversion(){
+    if check_sys sysRelease debian;then
+        local version=$( get_opsy )
+        local code=${1}
+        local main_ver=$( echo ${version} | sed 's/[^0-9]//g')
+        if [ "${main_ver}" == "${code}" ];then
+            return 0
+        else
+            return 1
+        fi
+    else
+        return 1
+    fi
+}
+
+download(){
+    local filename=$(basename $1)
+    if [ -f ${1} ]; then
+        echo "${filename} [found]"
+    else
+        echo "${filename} not found, download now..."
+        wget --no-check-certificate -c -t3 -T60 -O ${1} ${2}
+        if [ $? -ne 0 ]; then
+            echo -e "[${red}Error${plain}] Download ${filename} failed."
+            exit 1
+        fi
+    fi
+}
+
+download_files(){
+    cd ${cur_dir}
+
+    if   [ "${selected}" == "1" ]; then
+        download "${shadowsocks_python_file}.zip" "${shadowsocks_python_url}"
+        if check_sys packageManager yum; then
+            download "${shadowsocks_python_init}" "${shadowsocks_python_centos}"
+        elif check_sys packageManager apt; then
+            download "${shadowsocks_python_init}" "${shadowsocks_python_debian}"
+        fi
+    elif [ "${selected}" == "2" ]; then
+        download "${shadowsocks_r_file}.tar.gz" "${shadowsocks_r_url}"
+        if check_sys packageManager yum; then
+            download "${shadowsocks_r_init}" "${shadowsocks_r_centos}"
+        elif check_sys packageManager apt; then
+            download "${shadowsocks_r_init}" "${shadowsocks_r_debian}"
+        fi
+    elif [ "${selected}" == "3" ]; then
+        if is_64bit; then
+            download "${shadowsocks_go_file_64}.gz" "${shadowsocks_go_url_64}"
+        else
+            download "${shadowsocks_go_file_32}.gz" "${shadowsocks_go_url_32}"
+        fi
+        if check_sys packageManager yum; then
+            download "${shadowsocks_go_init}" "${shadowsocks_go_centos}"
+        elif check_sys packageManager apt; then
+            download "${shadowsocks_go_init}" "${shadowsocks_go_debian}"
+        fi
+    elif [ "${selected}" == "4" ]; then
+        get_libev_ver
+        shadowsocks_libev_file="shadowsocks-libev-$(echo ${libev_ver} | sed -e 's/^[a-zA-Z]//g')"
+        shadowsocks_libev_url="https://github.com/shadowsocks/shadowsocks-libev/releases/download/${libev_ver}/${shadowsocks_libev_file}.tar.gz"
+
+        download "${shadowsocks_libev_file}.tar.gz" "${shadowsocks_libev_url}"
+        if check_sys packageManager yum; then
+            download "${shadowsocks_libev_init}" "${shadowsocks_libev_centos}"
+        elif check_sys packageManager apt; then
+            download "${shadowsocks_libev_init}" "${shadowsocks_libev_debian}"
+        fi
+    fi
+
+}
+
+get_char(){
+    SAVEDSTTY=$(stty -g)
+    stty -echo
+    stty cbreak
+    dd if=/dev/tty bs=1 count=1 2> /dev/null
+    stty -raw
+    stty echo
+    stty $SAVEDSTTY
+}
+
+error_detect_depends(){
+    local command=$1
+    local depend=`echo "${command}" | awk '{print $4}'`
+    echo -e "[${green}Info${plain}] Starting to install package ${depend}"
+    ${command} > /dev/null 2>&1
+    if [ $? -ne 0 ]; then
+        echo -e "[${red}Error${plain}] Failed to install ${red}${depend}${plain}"
+        echo "Please visit: https://teddysun.com/486.html and contact."
+        exit 1
+    fi
+}
+
+config_firewall(){
+    if centosversion 6; then
+        /etc/init.d/iptables status > /dev/null 2>&1
+        if [ $? -eq 0 ]; then
+            iptables -L -n | grep -i ${shadowsocksport} > /dev/null 2>&1
+            if [ $? -ne 0 ]; then
+                iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport ${shadowsocksport} -j ACCEPT
+                iptables -I INPUT -m state --state NEW -m udp -p udp --dport ${shadowsocksport} -j ACCEPT
+                /etc/init.d/iptables save
+                /etc/init.d/iptables restart
+            else
+                echo -e "[${green}Info${plain}] port ${green}${shadowsocksport}${plain} already be enabled."
+            fi
+        else
+            echo -e "[${yellow}Warning${plain}] iptables looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
+        fi
+    elif centosversion 7; then
+        systemctl status firewalld > /dev/null 2>&1
+        if [ $? -eq 0 ]; then
+            default_zone=$(firewall-cmd --get-default-zone)
+            firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/tcp
+            firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/udp
+            firewall-cmd --reload
+        else
+            echo -e "[${yellow}Warning${plain}] firewalld looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
+        fi
+    fi
+}
+
+config_shadowsocks(){
+
+if check_kernel_version && check_kernel_headers; then
+    fast_open="true"
+else
+    fast_open="false"
+fi
+
+if   [ "${selected}" == "1" ]; then
+    if [ ! -d "$(dirname ${shadowsocks_python_config})" ]; then
+        mkdir -p $(dirname ${shadowsocks_python_config})
+    fi
+    cat > ${shadowsocks_python_config}<<-EOF
+{
+    "server":"0.0.0.0",
+    "server_port":${shadowsocksport},
+    "local_address":"127.0.0.1",
+    "local_port":1080,
+    "password":"${shadowsockspwd}",
+    "timeout":300,
+    "method":"${shadowsockscipher}",
+    "fast_open":${fast_open}
+}
+EOF
+elif [ "${selected}" == "2" ]; then
+    if [ ! -d "$(dirname ${shadowsocks_r_config})" ]; then
+        mkdir -p $(dirname ${shadowsocks_r_config})
+    fi
+    cat > ${shadowsocks_r_config}<<-EOF
+{
+    "server":"0.0.0.0",
+    "server_ipv6":"::",
+    "server_port":${shadowsocksport},
+    "local_address":"127.0.0.1",
+    "local_port":1080,
+    "password":"${shadowsockspwd}",
+    "timeout":120,
+    "method":"${shadowsockscipher}",
+    "protocol":"${shadowsockprotocol}",
+    "protocol_param":"",
+    "obfs":"${shadowsockobfs}",
+    "obfs_param":"",
+    "redirect":"",
+    "dns_ipv6":false,
+    "fast_open":${fast_open},
+    "workers":1
+}
+EOF
+elif [ "${selected}" == "3" ]; then
+    if [ ! -d "$(dirname ${shadowsocks_go_config})" ]; then
+        mkdir -p $(dirname ${shadowsocks_go_config})
+    fi
+    cat > ${shadowsocks_go_config}<<-EOF
+{
+    "server":"0.0.0.0",
+    "server_port":${shadowsocksport},
+    "local_port":1080,
+    "password":"${shadowsockspwd}",
+    "method":"${shadowsockscipher}",
+    "timeout":300
+}
+EOF
+elif [ "${selected}" == "4" ]; then
+    local server_value="\"0.0.0.0\""
+    if get_ipv6; then
+        server_value="[\"[::0]\",\"0.0.0.0\"]"
+    fi
+
+    if [ ! -d "$(dirname ${shadowsocks_libev_config})" ]; then
+        mkdir -p $(dirname ${shadowsocks_libev_config})
+    fi
+
+    if [ "${libev_obfs}" == "y" ] || [ "${libev_obfs}" == "Y" ]; then
+        cat > ${shadowsocks_libev_config}<<-EOF
+{
+    "server":${server_value},
+    "server_port":${shadowsocksport},
+    "password":"${shadowsockspwd}",
+    "timeout":300,
+    "user":"nobody",
+    "method":"${shadowsockscipher}",
+    "fast_open":${fast_open},
+    "nameserver":"8.8.8.8",
+    "mode":"tcp_and_udp",
+    "plugin":"obfs-server",
+    "plugin_opts":"obfs=${shadowsocklibev_obfs}"
+}
+EOF
+    else
+        cat > ${shadowsocks_libev_config}<<-EOF
+{
+    "server":${server_value},
+    "server_port":${shadowsocksport},
+    "password":"${shadowsockspwd}",
+    "timeout":300,
+    "user":"nobody",
+    "method":"${shadowsockscipher}",
+    "fast_open":${fast_open},
+    "nameserver":"8.8.8.8",
+    "mode":"tcp_and_udp"
+}
+EOF
+    fi
+
+fi
+}
+
+install_dependencies(){
+    if check_sys packageManager yum; then
+        echo -e "[${green}Info${plain}] Checking the EPEL repository..."
+        if [ ! -f /etc/yum.repos.d/epel.repo ]; then
+            yum install -y epel-release > /dev/null 2>&1
+        fi
+        [ ! -f /etc/yum.repos.d/epel.repo ] && echo -e "[${red}Error${plain}] Install EPEL repository failed, please check it." && exit 1
+        [ ! "$(command -v yum-config-manager)" ] && yum install -y yum-utils > /dev/null 2>&1
+        [ x"$(yum-config-manager epel | grep -w enabled | awk '{print $3}')" != x"True" ] && yum-config-manager --enable epel > /dev/null 2>&1
+        echo -e "[${green}Info${plain}] Checking the EPEL repository complete..."
+
+        yum_depends=(
+            unzip gzip openssl openssl-devel gcc python python-devel python-setuptools pcre pcre-devel libtool libevent
+            autoconf automake make curl curl-devel zlib-devel perl perl-devel cpio expat-devel gettext-devel
+            libev-devel c-ares-devel git qrencode
+        )
+        for depend in ${yum_depends[@]}; do
+            error_detect_depends "yum -y install ${depend}"
+        done
+    elif check_sys packageManager apt; then
+        apt_depends=(
+            gettext build-essential unzip gzip python python-dev python-setuptools curl openssl libssl-dev
+            autoconf automake libtool gcc make perl cpio libpcre3 libpcre3-dev zlib1g-dev libev-dev libc-ares-dev git qrencode
+        )
+
+        apt-get -y update
+        for depend in ${apt_depends[@]}; do
+            error_detect_depends "apt-get -y install ${depend}"
+        done
+    fi
+}
+
+install_check(){
+    if check_sys packageManager yum || check_sys packageManager apt; then
+        if centosversion 5; then
+            return 1
+        fi
+        return 0
+    else
+        return 1
+    fi
+}
+
+install_select(){
+    if ! install_check; then
+        echo -e "[${red}Error${plain}] Your OS is not supported to run it!"
+        echo "Please change to CentOS 6+/Debian 7+/Ubuntu 12+ and try again."
+        exit 1
+    fi
+
+    clear
+    while true
+    do
+	selected=4
+    case "${selected}" in
+        1|2|3|4)
+        msg -bar
+        echo "Este Proceso instalara: ${software[${selected}-1]}"
+		echo "   ##Este proceso puede demorar unos minutos##"
+        msg -bar
+        break
+        ;;
+        *)
+        echo -e "[${red}Error${plain}] Please only enter a number [1-4]"
+        ;;
+    esac
+    done
+}
+
+install_prepare_password(){
+    echo "Por favor, introduzca la contraseña para ${software[${selected}-1]}"
+    read -p "(Default Contraseña: pro.sshyproxy.xyz):" shadowsockspwd
+    [ -z "${shadowsockspwd}" ] && shadowsockspwd="pro.sshyproxy.xyz"
+    msg -bar
+    echo "Contraseña = ${shadowsockspwd}"
+    msg -bar
+}
+
+install_prepare_port() {
+    while true
+    do
+    dport=$(shuf -i 9000-19999 -n 1)
+    echo -e "Por favor ingrese un puerto para ${software[${selected}-1]} [1-65535]"
+    read -p "(Default port: ${dport}):" shadowsocksport
+    [ -z "${shadowsocksport}" ] && shadowsocksport=${dport}
+    expr ${shadowsocksport} + 1 &>/dev/null
+    if [ $? -eq 0 ]; then
+        if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ] && [ ${shadowsocksport:0:1} != 0 ]; then
+            msg -bar
+            echo "Puerto = ${shadowsocksport}"
+            msg -bar
+            break
+        fi
+    fi
+    echo -e "[${red}Error${plain}] Please enter a correct number [1-65535]"
+    done
+}
+
+install_prepare_cipher(){
+    while true
+    do
+    echo -e "Por favor seleccione la secuencia de cifrado para ${software[${selected}-1]}:"
+    msg -bar
+    if   [[ "${selected}" == "1" || "${selected}" == "4" ]]; then
+        for ((i=1;i<=${#common_ciphers[@]};i++ )); do
+            hint="${common_ciphers[$i-1]}"
+            echo -e "${green}${i}${plain}) ${hint}"
+        done
+		msg -bar
+        read -p "¿Qué cifrado elegirías?(Default: ${common_ciphers[0]}):" pick
+        [ -z "$pick" ] && pick=1
+        expr ${pick} + 1 &>/dev/null
+        if [ $? -ne 0 ]; then
+            echo -e "[${red}Error${plain}] Please enter a number"
+            continue
+        fi
+        if [[ "$pick" -lt 1 || "$pick" -gt ${#common_ciphers[@]} ]]; then
+            echo -e "[${red}Error${plain}] Please enter a number between 1 and ${#common_ciphers[@]}"
+            continue
+        fi
+        shadowsockscipher=${common_ciphers[$pick-1]}
+    elif [ "${selected}" == "2" ]; then
+        for ((i=1;i<=${#r_ciphers[@]};i++ )); do
+            hint="${r_ciphers[$i-1]}"
+            echo -e "${green}${i}${plain}) ${hint}"
+        done
+		msg -bar
+        read -p "¿Qué cifrado elegirías?(Default: ${r_ciphers[1]}):" pick
+        [ -z "$pick" ] && pick=2
+        expr ${pick} + 1 &>/dev/null
+        if [ $? -ne 0 ]; then
+            echo -e "[${red}Error${plain}] Please enter a number"
+            continue
+        fi
+        if [[ "$pick" -lt 1 || "$pick" -gt ${#r_ciphers[@]} ]]; then
+            echo -e "[${red}Error${plain}] Please enter a number between 1 and ${#r_ciphers[@]}"
+            continue
+        fi
+        shadowsockscipher=${r_ciphers[$pick-1]}
+    elif [ "${selected}" == "3" ]; then
+        for ((i=1;i<=${#go_ciphers[@]};i++ )); do
+            hint="${go_ciphers[$i-1]}"
+            echo -e "${green}${i}${plain}) ${hint}"
+        done
+		msg -bar
+        read -p "¿Qué cifrado elegirías?(Default: ${go_ciphers[0]}):" pick
+        [ -z "$pick" ] && pick=1
+        expr ${pick} + 1 &>/dev/null
+        if [ $? -ne 0 ]; then
+            echo -e "[${red}Error${plain}] Please enter a number"
+            continue
+        fi
+        if [[ "$pick" -lt 1 || "$pick" -gt ${#go_ciphers[@]} ]]; then
+            echo -e "[${red}Error${plain}] Please enter a number between 1 and ${#go_ciphers[@]}"
+            continue
+        fi
+        shadowsockscipher=${go_ciphers[$pick-1]}
+    fi
+
+    msg -bar
+    echo "Cifrado = ${shadowsockscipher}"
+    msg -bar
+    break
+    done
+}
+
+install_prepare_protocol(){
+    while true
+    do
+    echo -e "Please select protocol for ${software[${selected}-1]}:"
+    for ((i=1;i<=${#protocols[@]};i++ )); do
+        hint="${protocols[$i-1]}"
+        echo -e "${green}${i}${plain}) ${hint}"
+    done
+    read -p "Which protocol you'd select(Default: ${protocols[0]}):" protocol
+    [ -z "$protocol" ] && protocol=1
+    expr ${protocol} + 1 &>/dev/null
+    if [ $? -ne 0 ]; then
+        echo -e "[${red}Error${plain}] Please enter a number"
+        continue
+    fi
+    if [[ "$protocol" -lt 1 || "$protocol" -gt ${#protocols[@]} ]]; then
+        echo -e "[${red}Error${plain}] Please enter a number between 1 and ${#protocols[@]}"
+        continue
+    fi
+    shadowsockprotocol=${protocols[$protocol-1]}
+    echo
+    echo "protocol = ${shadowsockprotocol}"
+    echo
+    break
+    done
+}
+
+install_prepare_obfs(){
+    while true
+    do
+    echo -e "Por favor, seleccione obfs para ${software[${selected}-1]}:"
+	msg -bar
+    for ((i=1;i<=${#obfs[@]};i++ )); do
+        hint="${obfs[$i-1]}"
+        echo -e "${green}${i}${plain}) ${hint}"
+    done
+	msg -bar
+    read -p "Qué objs elegirías(Default: ${obfs[0]}):" r_obfs
+    [ -z "$r_obfs" ] && r_obfs=1
+    expr ${r_obfs} + 1 &>/dev/null
+    if [ $? -ne 0 ]; then
+        echo -e "[${red}Error${plain}] Please enter a number"
+        continue
+    fi
+    if [[ "$r_obfs" -lt 1 || "$r_obfs" -gt ${#obfs[@]} ]]; then
+        echo -e "[${red}Error${plain}] Please enter a number between 1 and ${#obfs[@]}"
+        continue
+    fi
+    shadowsockobfs=${obfs[$r_obfs-1]}
+    echo
+    echo "obfs = ${shadowsockobfs}"
+    echo
+    break
+    done
+}
+
+install_prepare_libev_obfs(){
+    if autoconf_version || centosversion 6; then
+        while true
+        do
+        echo -e "Quieres instalar simple-obfs para ${software[${selected}-1]}? [y/n]"
+        read -p "(default: n):" libev_obfs
+        [ -z "$libev_obfs" ] && libev_obfs=n
+        case "${libev_obfs}" in
+            y|Y|n|N)
+            msg -bar
+            echo "Tu eliges = ${libev_obfs}"
+            msg -bar
+            break
+            ;;
+            *)
+            echo -e "[${red}Error${plain}] Please only enter [y/n]"
+            ;;
+        esac
+        done
+
+        if [ "${libev_obfs}" == "y" ] || [ "${libev_obfs}" == "Y" ]; then
+            while true
+            do
+            echo -e "Por favor, seleccione obfs para simple-obfs:"
+			msg -bar
+            for ((i=1;i<=${#obfs_libev[@]};i++ )); do
+                hint="${obfs_libev[$i-1]}"
+                echo -e "${green}${i}${plain}) ${hint}"
+            done
+			msg -bar
+            read -p "Qué objs elegirías(Default: ${obfs_libev[0]}):" r_libev_obfs
+            [ -z "$r_libev_obfs" ] && r_libev_obfs=1
+            expr ${r_libev_obfs} + 1 &>/dev/null
+            if [ $? -ne 0 ]; then
+                echo -e "[${red}Error${plain}] Please enter a number"
+                continue
+            fi
+            if [[ "$r_libev_obfs" -lt 1 || "$r_libev_obfs" -gt ${#obfs_libev[@]} ]]; then
+                echo -e "[${red}Error${plain}] Please enter a number between 1 and ${#obfs_libev[@]}"
+                continue
+            fi
+            shadowsocklibev_obfs=${obfs_libev[$r_libev_obfs-1]}
+            echo
+            echo "obfs = ${shadowsocklibev_obfs}"
+            echo
+            break
+            done
+        fi
+    else
+        echo -e "[${green}Info${plain}] autoconf version is less than 2.67, simple-obfs for ${software[${selected}-1]} installation has been skipped"
+    fi
+}
+
+install_prepare(){
+
+    if  [[ "${selected}" == "1" || "${selected}" == "3" || "${selected}" == "4" ]]; then
+        install_prepare_password
+        install_prepare_port
+        install_prepare_cipher
+        if [ "${selected}" == "4" ]; then
+            install_prepare_libev_obfs
+        fi
+    elif [ "${selected}" == "2" ]; then
+        install_prepare_password
+        install_prepare_port
+        install_prepare_cipher
+        install_prepare_protocol
+        install_prepare_obfs
+    fi
+
+    echo "Presiona cualquier tecla para comenzar...o Presione Ctrl+C para cancelar"
+    char=`get_char`
+
+}
+
+install_libsodium(){
+    if [ ! -f /usr/lib/libsodium.a ]; then
+        cd ${cur_dir}
+        download "${libsodium_file}.tar.gz" "${libsodium_url}"
+        tar zxf ${libsodium_file}.tar.gz
+        cd ${libsodium_file}
+        ./configure --prefix=/usr && make && make install
+        if [ $? -ne 0 ]; then
+            echo -e "[${red}Error${plain}] ${libsodium_file} install failed."
+            install_cleanup
+            exit 1
+        fi
+    else
+        echo -e "[${green}Info${plain}] ${libsodium_file} already installed."
+    fi
+}
+
+install_mbedtls(){
+    if [ ! -f /usr/lib/libmbedtls.a ]; then
+        cd ${cur_dir}
+        download "${mbedtls_file}-gpl.tgz" "${mbedtls_url}"
+        tar xf ${mbedtls_file}-gpl.tgz
+        cd ${mbedtls_file}
+        make SHARED=1 CFLAGS=-fPIC
+        make DESTDIR=/usr install
+        if [ $? -ne 0 ]; then
+            echo -e "[${red}Error${plain}] ${mbedtls_file} install failed."
+            install_cleanup
+            exit 1
+        fi
+    else
+        echo -e "[${green}Info${plain}] ${mbedtls_file} already installed."
+    fi
+}
+
+install_shadowsocks_python(){
+    cd ${cur_dir}
+    unzip -q ${shadowsocks_python_file}.zip
+    if [ $? -ne 0 ];then
+        echo -e "[${red}Error${plain}] unzip ${shadowsocks_python_file}.zip failed, please check unzip command."
+        install_cleanup
+        exit 1
+    fi
+
+    cd ${shadowsocks_python_file}
+    python setup.py install --record /usr/local/shadowsocks_python.log
+
+    if [ -f /usr/bin/ssserver ] || [ -f /usr/local/bin/ssserver ]; then
+        chmod +x ${shadowsocks_python_init}
+        local service_name=$(basename ${shadowsocks_python_init})
+        if check_sys packageManager yum; then
+            chkconfig --add ${service_name}
+            chkconfig ${service_name} on
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} defaults
+        fi
+    else
+        echo
+        echo -e "[${red}Error${plain}] ${software[0]} install failed."
+        echo "Please visit: https://teddysun.com/486.html and contact."
+        install_cleanup
+        exit 1
+    fi
+}
+
+install_shadowsocks_r(){
+    cd ${cur_dir}
+    tar zxf ${shadowsocks_r_file}.tar.gz
+    mv ${shadowsocks_r_file}/shadowsocks /usr/local/
+    if [ -f /usr/local/shadowsocks/server.py ]; then
+        chmod +x ${shadowsocks_r_init}
+        local service_name=$(basename ${shadowsocks_r_init})
+        if check_sys packageManager yum; then
+            chkconfig --add ${service_name}
+            chkconfig ${service_name} on
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} defaults
+        fi
+    else
+        echo
+        echo -e "[${red}Error${plain}] ${software[1]} install failed."
+        echo "Please visit; https://teddysun.com/486.html and contact."
+        install_cleanup
+        exit 1
+    fi
+}
+
+install_shadowsocks_go(){
+    cd ${cur_dir}
+    if is_64bit; then
+        gzip -d ${shadowsocks_go_file_64}.gz
+        if [ $? -ne 0 ];then
+            echo -e "[${red}Error${plain}] Decompress ${shadowsocks_go_file_64}.gz failed."
+            install_cleanup
+            exit 1
+        fi
+        mv -f ${shadowsocks_go_file_64} /usr/bin/shadowsocks-server
+    else
+        gzip -d ${shadowsocks_go_file_32}.gz
+        if [ $? -ne 0 ];then
+            echo -e "[${red}Error${plain}] Decompress ${shadowsocks_go_file_32}.gz failed."
+            install_cleanup
+            exit 1
+        fi
+        mv -f ${shadowsocks_go_file_32} /usr/bin/shadowsocks-server
+    fi
+
+    if [ -f /usr/bin/shadowsocks-server ]; then
+        chmod +x /usr/bin/shadowsocks-server
+        chmod +x ${shadowsocks_go_init}
+
+        local service_name=$(basename ${shadowsocks_go_init})
+        if check_sys packageManager yum; then
+            chkconfig --add ${service_name}
+            chkconfig ${service_name} on
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} defaults
+        fi
+    else
+        echo
+        echo -e "[${red}Error${plain}] ${software[2]} install failed."
+        echo "Please visit: https://teddysun.com/486.html and contact."
+        install_cleanup
+        exit 1
+    fi
+}
+
+install_shadowsocks_libev(){
+    cd ${cur_dir}
+    tar zxf ${shadowsocks_libev_file}.tar.gz
+    cd ${shadowsocks_libev_file}
+    ./configure --disable-documentation && make && make install
+    if [ $? -eq 0 ]; then
+        chmod +x ${shadowsocks_libev_init}
+        local service_name=$(basename ${shadowsocks_libev_init})
+        if check_sys packageManager yum; then
+            chkconfig --add ${service_name}
+            chkconfig ${service_name} on
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} defaults
+        fi
+    else
+        echo
+        echo -e "[${red}Error${plain}] ${software[3]} install failed."
+        echo "Please visit: https://teddysun.com/486.html and contact."
+        install_cleanup
+        exit 1
+    fi
+}
+
+install_shadowsocks_libev_obfs(){
+    if [ "${libev_obfs}" == "y" ] || [ "${libev_obfs}" == "Y" ]; then
+        cd ${cur_dir}
+        git clone https://github.com/shadowsocks/simple-obfs.git
+        [ -d simple-obfs ] && cd simple-obfs || echo -e "[${red}Error:${plain}] Failed to git clone simple-obfs."
+        git submodule update --init --recursive
+        if centosversion 6; then
+            if [ ! "$(command -v autoconf268)" ]; then
+                echo -e "[${green}Info${plain}] Starting install autoconf268..."
+                yum install -y autoconf268 > /dev/null 2>&1 || echo -e "[${red}Error:${plain}] Failed to install autoconf268."
+            fi
+            # replace command autoreconf to autoreconf268
+            sed -i 's/autoreconf/autoreconf268/' autogen.sh
+            # replace #include <ev.h> to #include <libev/ev.h>
+            sed -i 's@^#include <ev.h>@#include <libev/ev.h>@' src/local.h
+            sed -i 's@^#include <ev.h>@#include <libev/ev.h>@' src/server.h
+        fi
+        ./autogen.sh
+        ./configure --disable-documentation
+        make
+        make install
+        if [ ! "$(command -v obfs-server)" ]; then
+            echo -e "[${red}Error${plain}] simple-obfs for ${software[${selected}-1]} install failed."
+            echo "Please visit: https://teddysun.com/486.html and contact."
+            install_cleanup
+            exit 1
+        fi
+        [ -f /usr/local/bin/obfs-server ] && ln -s /usr/local/bin/obfs-server /usr/bin
+    fi
+}
+
+install_completed_python(){
+    clear
+    ${shadowsocks_python_init} start
+    msg -bar
+    echo -e "Felicidades, ${green}${software[0]}${plain} instalación del servidor completada!"
+    echo -e "Tu Server IP        : ${red} $(get_ip) ${plain}"
+    echo -e "Tu Server Port      : ${red} ${shadowsocksport} ${plain}"
+    echo -e "Tu Password         : ${red} ${shadowsockspwd} ${plain}"
+    echo -e "Tu Encryption Method: ${red} ${shadowsockscipher} ${plain}"
+}
+
+install_completed_r(){
+    clear
+    ${shadowsocks_r_init} start
+    msg -bar
+    echo -e "Felicidades, ${green}${software[1]}${plain} instalación del servidor completada!"
+    echo -e "Tu Server IP        : ${red} $(get_ip) ${plain}"
+    echo -e "Tu Server Port      : ${red} ${shadowsocksport} ${plain}"
+    echo -e "Tu Password         : ${red} ${shadowsockspwd} ${plain}"
+    echo -e "Tu Protocol         : ${red} ${shadowsockprotocol} ${plain}"
+    echo -e "Tu obfs             : ${red} ${shadowsockobfs} ${plain}"
+    echo -e "Tu Encryption Method: ${red} ${shadowsockscipher} ${plain}"
+}
+
+install_completed_go(){
+    clear
+    ${shadowsocks_go_init} start
+    msg -bar
+    echo -e "Felicidades, ${green}${software[2]}${plain} instalación del servidor completada!"
+    echo -e "Tu Server IP        : ${red} $(get_ip) ${plain}"
+    echo -e "Tu Server Port      : ${red} ${shadowsocksport} ${plain}"
+    echo -e "Tu Password         : ${red} ${shadowsockspwd} ${plain}"
+    echo -e "Tu Encryption Method: ${red} ${shadowsockscipher} ${plain}"
+}
+
+install_completed_libev(){
+    clear
+    ldconfig
+    ${shadowsocks_libev_init} start
+    msg -bar
+    echo -e "Felicidades, ${green}${software[3]}${plain} instalación del servidor completada!"
+    echo -e "Tu Server IP        : ${red} $(get_ip) ${plain}"
+    echo -e "Tu Server Port      : ${red} ${shadowsocksport} ${plain}"
+    echo -e "Tu Password         : ${red} ${shadowsockspwd} ${plain}"
+    if [ "$(command -v obfs-server)" ]; then
+    echo -e "Tu obfs             : ${red} ${shadowsocklibev_obfs} ${plain}"
+    fi
+    echo -e "Tu Encryption Method: ${red} ${shadowsockscipher} ${plain}"
+}
+
+qr_generate_python(){
+    if [ "$(command -v qrencode)" ]; then
+        local tmp=$(echo -n "${shadowsockscipher}:${shadowsockspwd}@$(get_ip):${shadowsocksport}" | base64 -w0)
+        local qr_code="ss://${tmp}"
+        echo
+        echo "Tu QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)"
+        echo -e "${green} ${qr_code} ${plain}"
+        echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_python_qr.png
+        echo "Tu QR Code has been saved as a PNG file path:"
+        echo -e "${green} ${cur_dir}/shadowsocks_python_qr.png ${plain}"
+    fi
+}
+
+qr_generate_r(){
+    if [ "$(command -v qrencode)" ]; then
+        local tmp1=$(echo -n "${shadowsockspwd}" | base64 -w0 | sed 's/=//g;s/\//_/g;s/+/-/g')
+        local tmp2=$(echo -n "$(get_ip):${shadowsocksport}:${shadowsockprotocol}:${shadowsockscipher}:${shadowsockobfs}:${tmp1}/?obfsparam=" | base64 -w0)
+        local qr_code="ssr://${tmp2}"
+        echo
+        echo "Tu QR Code: (For ShadowsocksR Windows, Android clients only)"
+        echo -e "${green} ${qr_code} ${plain}"
+        echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_r_qr.png
+        echo "Tu QR Code has been saved as a PNG file path:"
+        echo -e "${green} ${cur_dir}/shadowsocks_r_qr.png ${plain}"
+    fi
+}
+
+qr_generate_go(){
+    if [ "$(command -v qrencode)" ]; then
+        local tmp=$(echo -n "${shadowsockscipher}:${shadowsockspwd}@$(get_ip):${shadowsocksport}" | base64 -w0)
+        local qr_code="ss://${tmp}"
+        echo
+        echo "Tu QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)"
+        echo -e "${green} ${qr_code} ${plain}"
+        echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_go_qr.png
+        echo "Tu QR Code has been saved as a PNG file path:"
+        echo -e "${green} ${cur_dir}/shadowsocks_go_qr.png ${plain}"
+    fi
+}
+
+qr_generate_libev(){
+    if [ "$(command -v qrencode)" ]; then
+        local tmp=$(echo -n "${shadowsockscipher}:${shadowsockspwd}@$(get_ip):${shadowsocksport}" | base64 -w0)
+        local qr_code="ss://${tmp}"
+        echo
+        echo "Tu QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)"
+        echo -e "${green} ${qr_code} ${plain}"
+        echo -n "${qr_code}" | qrencode -s8 -o ${cur_dir}/shadowsocks_libev_qr.png
+        echo "Tu QR Code has been saved as a PNG file path:"
+        echo -e "${green} ${cur_dir}/shadowsocks_libev_qr.png ${plain}"
+    fi
+}
+
+install_main(){
+    install_libsodium
+    if ! ldconfig -p | grep -wq "/usr/lib"; then
+        echo "/usr/lib" > /etc/ld.so.conf.d/lib.conf
+    fi
+    ldconfig
+
+    if   [ "${selected}" == "1" ]; then
+        install_shadowsocks_python
+        install_completed_python
+        qr_generate_python
+    elif [ "${selected}" == "2" ]; then
+        install_shadowsocks_r
+        install_completed_r
+        qr_generate_r
+    elif [ "${selected}" == "3" ]; then
+        install_shadowsocks_go
+        install_completed_go
+        qr_generate_go
+    elif [ "${selected}" == "4" ]; then
+        install_mbedtls
+        install_shadowsocks_libev
+        install_shadowsocks_libev_obfs
+        install_completed_libev
+        qr_generate_libev
+    fi
+
+    echo
+    echo "Visite: https://pro.sshyproxy.xyz"
+    echo
+}
+
+install_cleanup(){
+    cd ${cur_dir}
+    rm -rf simple-obfs
+    rm -rf ${libsodium_file} ${libsodium_file}.tar.gz
+    rm -rf ${mbedtls_file} ${mbedtls_file}-gpl.tgz
+    rm -rf ${shadowsocks_python_file} ${shadowsocks_python_file}.zip
+    rm -rf ${shadowsocks_r_file} ${shadowsocks_r_file}.tar.gz
+    rm -rf ${shadowsocks_go_file_64}.gz ${shadowsocks_go_file_32}.gz
+    rm -rf ${shadowsocks_libev_file} ${shadowsocks_libev_file}.tar.gz
+}
+
+install_shadowsocks(){
+    disable_selinux
+    install_select
+    install_prepare
+    install_dependencies
+    download_files
+    config_shadowsocks
+    if check_sys packageManager yum; then
+        config_firewall
+    fi
+    install_main
+    install_cleanup
+}
+
+uninstall_shadowsocks_python(){
+    printf "Estás seguro de desinstalar ${red}${software[0]}${plain}? [y/n]\n"
+    read -p "(default: n):" answer
+    [ -z ${answer} ] && answer="n"
+    if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+        ${shadowsocks_python_init} status > /dev/null 2>&1
+        if [ $? -eq 0 ]; then
+            ${shadowsocks_python_init} stop
+        fi
+        local service_name=$(basename ${shadowsocks_python_init})
+        if check_sys packageManager yum; then
+            chkconfig --del ${service_name}
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} remove
+        fi
+
+        rm -fr $(dirname ${shadowsocks_python_config})
+        rm -f ${shadowsocks_python_init}
+        rm -f /var/log/shadowsocks.log
+        if [ -f /usr/local/shadowsocks_python.log ]; then
+            cat /usr/local/shadowsocks_python.log | xargs rm -rf
+            rm -f /usr/local/shadowsocks_python.log
+        fi
+        echo -e "[${green}Info${plain}] ${software[0]} uninstall success"
+    else
+        echo
+        echo -e "[${green}Info${plain}] ${software[0]} uninstall cancelled, nothing to do..."
+        echo
+    fi
+}
+
+uninstall_shadowsocks_r(){
+    printf "Estás seguro de desinstalar ${red}${software[1]}${plain}? [y/n]\n"
+    read -p "(default: n):" answer
+    [ -z ${answer} ] && answer="n"
+    if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+        ${shadowsocks_r_init} status > /dev/null 2>&1
+        if [ $? -eq 0 ]; then
+            ${shadowsocks_r_init} stop
+        fi
+        local service_name=$(basename ${shadowsocks_r_init})
+        if check_sys packageManager yum; then
+            chkconfig --del ${service_name}
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} remove
+        fi
+        rm -fr $(dirname ${shadowsocks_r_config})
+        rm -f ${shadowsocks_r_init}
+        rm -f /var/log/shadowsocks.log
+        rm -fr /usr/local/shadowsocks
+        echo -e "[${green}Info${plain}] ${software[1]} uninstall success"
+    else
+        echo
+        echo -e "[${green}Info${plain}] ${software[1]} uninstall cancelled, nothing to do..."
+        echo
+    fi
+}
+
+uninstall_shadowsocks_go(){
+    printf "Estás seguro de desinstalar ${red}${software[2]}${plain}? [y/n]\n"
+    read -p "(default: n):" answer
+    [ -z ${answer} ] && answer="n"
+    if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+        ${shadowsocks_go_init} status > /dev/null 2>&1
+        if [ $? -eq 0 ]; then
+            ${shadowsocks_go_init} stop
+        fi
+        local service_name=$(basename ${shadowsocks_go_init})
+        if check_sys packageManager yum; then
+            chkconfig --del ${service_name}
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} remove
+        fi
+        rm -fr $(dirname ${shadowsocks_go_config})
+        rm -f ${shadowsocks_go_init}
+        rm -f /usr/bin/shadowsocks-server
+        echo -e "[${green}Info${plain}] ${software[2]} uninstall success"
+    else
+        echo
+        echo -e "[${green}Info${plain}] ${software[2]} uninstall cancelled, nothing to do..."
+        echo
+    fi
+}
+
+uninstall_shadowsocks_libev(){
+    printf "Estás seguro de desinstalar ${red}${software[3]}${plain}? [y/n]\n"
+    read -p "(default: n):" answer
+    [ -z ${answer} ] && answer="n"
+    if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
+        ${shadowsocks_libev_init} status > /dev/null 2>&1
+        if [ $? -eq 0 ]; then
+            ${shadowsocks_libev_init} stop
+        fi
+        local service_name=$(basename ${shadowsocks_libev_init})
+        if check_sys packageManager yum; then
+            chkconfig --del ${service_name}
+        elif check_sys packageManager apt; then
+            update-rc.d -f ${service_name} remove
+        fi
+        rm -fr $(dirname ${shadowsocks_libev_config})
+        rm -f /usr/local/bin/ss-local
+        rm -f /usr/local/bin/ss-tunnel
+        rm -f /usr/local/bin/ss-server
+        rm -f /usr/local/bin/ss-manager
+        rm -f /usr/local/bin/ss-redir
+        rm -f /usr/local/bin/ss-nat
+        rm -f /usr/local/bin/obfs-local
+        rm -f /usr/local/bin/obfs-server
+        rm -f /usr/local/lib/libshadowsocks-libev.a
+        rm -f /usr/local/lib/libshadowsocks-libev.la
+        rm -f /usr/local/include/shadowsocks.h
+        rm -f /usr/local/lib/pkgconfig/shadowsocks-libev.pc
+        rm -f /usr/local/share/man/man1/ss-local.1
+        rm -f /usr/local/share/man/man1/ss-tunnel.1
+        rm -f /usr/local/share/man/man1/ss-server.1
+        rm -f /usr/local/share/man/man1/ss-manager.1
+        rm -f /usr/local/share/man/man1/ss-redir.1
+        rm -f /usr/local/share/man/man1/ss-nat.1
+        rm -f /usr/local/share/man/man8/shadowsocks-libev.8
+        rm -fr /usr/local/share/doc/shadowsocks-libev
+        rm -f ${shadowsocks_libev_init}
+        echo -e "[${green}Info${plain}] ${software[3]} uninstall success"
+    else
+        echo
+        echo -e "[${green}Info${plain}] ${software[3]} uninstall cancelled, nothing to do..."
+        echo
+    fi
+}
+
+uninstall_shadowsocks(){
+    while true
+    do
+    echo  "¿Qué servidor de Shadowsocks quieres desinstalar?"
+	msg -bar
+    for ((i=1;i<=${#software[@]};i++ )); do
+        hint="${software[$i-1]}"
+        echo -e "${green}${i}${plain}) ${hint}"
+    done
+	msg -bar
+    read -p "Por favor, introduzca un número[1-4]:" un_select
+    case "${un_select}" in
+        1|2|3|4)
+        msg -bar
+        echo "Tu eliges = ${software[${un_select}-1]}"
+        msg -bar
+        break
+        ;;
+        *)
+        echo -e "[${red}Error${plain}] Please only enter a number [1-4]"
+        ;;
+    esac
+    done
+
+    if   [ "${un_select}" == "1" ]; then
+        if [ -f ${shadowsocks_python_init} ]; then
+            uninstall_shadowsocks_python
+        else
+            echo -e "[${red}Error${plain}] ${software[${un_select}-1]} not installed, please check it and try again."
+            echo
+            exit 1
+        fi
+    elif [ "${un_select}" == "2" ]; then
+        if [ -f ${shadowsocks_r_init} ]; then
+            uninstall_shadowsocks_r
+        else
+            echo -e "[${red}Error${plain}] ${software[${un_select}-1]} not installed, please check it and try again."
+            echo
+            exit 1
+        fi
+    elif [ "${un_select}" == "3" ]; then
+        if [ -f ${shadowsocks_go_init} ]; then
+            uninstall_shadowsocks_go
+        else
+            echo -e "[${red}Error${plain}] ${software[${un_select}-1]} not installed, please check it and try again."
+            echo
+            exit 1
+        fi
+    elif [ "${un_select}" == "4" ]; then
+        if [ -f ${shadowsocks_libev_init} ]; then
+            uninstall_shadowsocks_libev
+        else
+            echo -e "[${red}Error${plain}] ${software[${un_select}-1]} not installed, please check it and try again."
+            echo
+            exit 1
+        fi
+    fi
+}
+
+# Initialization step
+action=$1
+[ -z $1 ] && action=install
+case "${action}" in
+    install|uninstall)
+        ${action}_shadowsocks
+        ;;
+    *)
+        echo "Arguments error! [${action}]"
+        echo "Usage: $(basename $0) [install|uninstall]"
+        ;;
+esac
+echo -e "\E[44;1;37mA SIDO CREADA CON EXITO 0 PARA SALIR\033[0m               " "\033[1;33m\033[2;33m\E[41;1;37m[15]-MENU PRINCIPAL\033[0m"
+while [ "$opcion" != "0" ]
+do
+read opcion
+case $opcion in
+
+15)/root/menu
+;;
+esac
+exit
+done

BIN
Omar-SSHPLUS-OLD/Pendientes/lj.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/op.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/pay.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/sd.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/sd1.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/u.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/v.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/w.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/x.sh


BIN
Omar-SSHPLUS-OLD/Pendientes/y.sh


+ 4 - 0
Omar-SSHPLUS-OLD/amor.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+ grep -v "^menu;" /etc/profile > /tmp/tmpass && mv /tmp/tmpass /etc/profile
+ echo "menu;" >> /etc/profile
+  

+ 31 - 0
Omar-SSHPLUS-OLD/amor2.sh

@@ -0,0 +1,31 @@
+#!/bin/bash
+ clear
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m                   ""\E[41;1;37m  << INSTALA Y DESINSTALAR APACHE PORT  >> \033[0m"
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] • INSTALAR APACHE Y PUERTO\033[0m"
+ echo -e "\E[48;1;37m[2] • DESACTIVAR APACHE PUERTO\033[0m"
+ echo -e "\E[48;1;37m[3] • ACTIVAR APACHE Y PUERTO\033[0m"
+ echo -e "                                              ""\E[41;1;37m[15]-AUTO-MENU\033[0m      ""\E[41;1;37m[00]-EXIT\033[0m"
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 1)/root/ap.sh
+ ;;
+ 2)echo -e "\E[44;1;37mAPACHE Y PUERTO DESACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ service apache2 stop && /root/menu
+ ;;
+ 3)echo -e "\E[44;1;37mAPACHE Y PUERTO ACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ service apache2 start && /root/menu
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done
+  

+ 20 - 0
Omar-SSHPLUS-OLD/ap.sh

@@ -0,0 +1,20 @@
+#!/bin/bash
+ sudo apt install apache2 -y > /dev/null 2>&1
+ echo -e Listen 81 > /etc/apache2/ports.conf
+ service apache2 stop
+ service apache2 start
+ echo -e "\E[44;1;37mAPACHE Y PUERTO INSTALADO CON EXITO\033[0m"
+ echo -e "\E[44;1;37mPRESIONA TU OPCION DESEADA PARA SALIR O RGRESAR AL MENU\033[0m"
+ echo ""
+ echo -e "                                                       ""\E[41;1;37m[15]-AUTO-MENU\033[0m"    "\E[41;1;37m[00]-EXIT\033[0m"
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 1)
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done

+ 28 - 0
Omar-SSHPLUS-OLD/au.sh

@@ -0,0 +1,28 @@
+#!/bin/bash
+ clear
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m                   ""\E[41;1;37m  << ACTIVA Y DESACTIVA MENU AUTOMATICO >> \033[0m"
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] • ACTIVAR EL MENU AUTOMATICO\033[0m"
+ echo -e "\E[48;1;37m[2] • DESACTIVAR MENU AUTOMATICO\033[0m"
+ echo -e                                                                          "\033[1;37m\033[0m                                               ""   \E[41;1;37m[15]-AUTO-MENU\033[0m    ""\E[41;1;37m[00]-EXIT\033[0m"
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 1)echo -e "\E[44;1;37mEL MENU A SIDO ACTIVADO\033[0m"
+ sleep 1.5s
+ /root/amor.sh && /root/menu
+ ;;
+ 2)echo -e "\E[44;1;37mEL MENU A SIDO DESACTIVADO\033[0m"
+ sleep 1.5s
+ sed -i '/menu;/d' /etc/profile && /root/menu
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done
+  

+ 389 - 0
Omar-SSHPLUS-OLD/auto.sh

@@ -0,0 +1,389 @@
+#!/bin/bash
+ rm -rf /etc/stunnel/stunnel.pem
+ barra="\033[0;34m—————————————————————————————————————————————————————— \033[0m"
+ cor[0]="\033[0m" #SEN CORE
+ cor[1]="\033[0;34m" #AZUL
+ cor[2]="\033[1;32m" #VERDE
+ cor[3]="\033[1;37m" #BRAN
+ cor[4]="\033[1;36m" #MAG
+ cor[5]="\033[1;33m" #AMAREL
+ cor[6]="\033[1;35m" #MAGENTA
+ cor[7]="\033[1;31m" #VERMELHO
+ fun_bar () {
+ comando[0]="$1"
+ comando[1]="$2"
+  (
+ [[ -e $HOME/fim ]] && rm $HOME/fim
+ ${comando[0]} > /dev/null 2>&1
+ ${comando[1]} > /dev/null 2>&1
+ touch $HOME/fim
+  ) > /dev/null 2>&1 &
+  tput civis
+ echo -ne "  \033[1;33mAGUARDE \033[1;37m- \033[1;33m["
+ while true; do
+    for((i=0; i<18; i++)); do
+    echo -ne "\033[1;31m#"
+    sleep 0.1s
+    done
+    [[ -e $HOME/fim ]] && rm $HOME/fim && break
+    echo -e "\033[1;33m]"
+    sleep 1s
+    tput cuu1
+    tput dl1
+    echo -ne "  \033[1;33mAGUARDE \033[1;37m- \033[1;33m["
+ done
+ echo -e "\033[1;33m]\033[1;37m -\033[1;32m INSTALADO !\033[1;37m"
+ tput cnorm
+ }
+ inst_ssl () {
+ pkill -f stunnel4
+ pkill -f stunnel
+ pkill -f 443
+ pkill -f v2ray
+ pkill -f v2-ui
+ apt-get purge stunnel4 -y
+ apt-get purge stunnel -y
+ apt-get install stunnel4 -y
+ apt-get install stunnel -y
+ pt=$(netstat -nplt |grep 'sshd' | awk -F ":" NR==1{'print $2'} | cut -d " " -f 1)
+ echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${pt}\naccept = 443" > /etc/stunnel/stunnel.conf
+ openssl genrsa -out key.pem 2048 > /dev/null 2>&1
+ (echo $crt; echo $crt; echo $crt; echo $crt; echo $crt; echo $crt; echo $crt)|openssl req -new -x509 -key key.pem -out cert.pem -days 1050 > /dev/null 2>&1
+ cat key.pem cert.pem >> /etc/stunnel/stunnel.pem
+ sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+ service stunnel4 restart
+ service stunnel restart
+ service stunnel4 start
+ }
+ 
+ inst_py () {
+ 
+ pkill -f 80
+ pkill python
+ apt install python -y
+ apt install screen -y
+ 
+ pt=$(netstat -nplt |grep 'sshd' | awk -F ":" NR==1{'print $2'} | cut -d " " -f 1)
+ 
+  cat <<EOF > proxy.py
+ import socket, threading, thread, select, signal, sys, time, getopt
+ 
+ # CONFIG
+ LISTENING_ADDR = '0.0.0.0'
+ LISTENING_PORT = 1080
+ PASS = ''
+ 
+ # CONST
+ BUFLEN = 4096 * 4
+ TIMEOUT = 60
+ DEFAULT_HOST = "127.0.0.1:$pt"
+ RESPONSE = 'HTTP/1.1 101 Switching Protocols \r\n\r\n'
+  
+ class Server(threading.Thread):
+     def __init__(self, host, port):
+         threading.Thread.__init__(self)
+         self.running = False
+         self.host = host
+         self.port = port
+         self.threads = []
+ 	self.threadsLock = threading.Lock()
+ 	self.logLock = threading.Lock()
+ 
+     def run(self):
+         self.soc = socket.socket(socket.AF_INET)
+         self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+         self.soc.settimeout(2)
+         self.soc.bind((self.host, self.port))
+         self.soc.listen(0)
+         self.running = True
+ 
+         try:                    
+             while self.running:
+                 try:
+                     c, addr = self.soc.accept()
+                     c.setblocking(1)
+                 except socket.timeout:
+                     continue
+                 
+                 conn = ConnectionHandler(c, self, addr)
+                 conn.start();
+                 self.addConn(conn)
+         finally:
+             self.running = False
+             self.soc.close()
+             
+     def printLog(self, log):
+         self.logLock.acquire()
+         print log
+         self.logLock.release()
+ 	
+     def addConn(self, conn):
+         try:
+             self.threadsLock.acquire()
+             if self.running:
+                 self.threads.append(conn)
+         finally:
+             self.threadsLock.release()
+                     
+     def removeConn(self, conn):
+         try:
+             self.threadsLock.acquire()
+             self.threads.remove(conn)
+         finally:
+             self.threadsLock.release()
+                 
+     def close(self):
+         try:
+             self.running = False
+             self.threadsLock.acquire()
+             
+             threads = list(self.threads)
+             for c in threads:
+                 c.close()
+         finally:
+             self.threadsLock.release()
+ 			
+ 
+ class ConnectionHandler(threading.Thread):
+     def __init__(self, socClient, server, addr):
+         threading.Thread.__init__(self)
+         self.clientClosed = False
+         self.targetClosed = True
+         self.client = socClient
+         self.client_buffer = ''
+         self.server = server
+         self.log = 'Connection: ' + str(addr)
+ 
+     def close(self):
+         try:
+             if not self.clientClosed:
+                 self.client.shutdown(socket.SHUT_RDWR)
+                 self.client.close()
+         except:
+             pass
+         finally:
+             self.clientClosed = True
+             
+         try:
+             if not self.targetClosed:
+                 self.target.shutdown(socket.SHUT_RDWR)
+                 self.target.close()
+         except:
+             pass
+         finally:
+             self.targetClosed = True
+ 
+     def run(self):
+         try:
+             self.client_buffer = self.client.recv(BUFLEN)
+         
+             hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+             
+             if hostPort == '':
+                 hostPort = DEFAULT_HOST
+ 
+             split = self.findHeader(self.client_buffer, 'X-Split')
+ 
+             if split != '':
+                 self.client.recv(BUFLEN)
+             
+             if hostPort != '':
+                 passwd = self.findHeader(self.client_buffer, 'X-Pass')
+ 				
+                 if len(PASS) != 0 and passwd == PASS:
+                     self.method_CONNECT(hostPort)
+                 elif len(PASS) != 0 and passwd != PASS:
+                     self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                 elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+                     self.method_CONNECT(hostPort)
+                 else:
+                     self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+             else:
+                 print '- No X-Real-Host!'
+                 self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+ 
+         except Exception as e:
+             self.log += ' - error: ' + e.strerror
+             self.server.printLog(self.log)
+ 	    pass
+         finally:
+             self.close()
+             self.server.removeConn(self)
+ 
+     def findHeader(self, head, header):
+         aux = head.find(header + ': ')
+     
+         if aux == -1:
+             return ''
+ 
+         aux = head.find(':', aux)
+         head = head[aux+2:]
+         aux = head.find('\r\n')
+ 
+         if aux == -1:
+             return ''
+ 
+         return head[:aux];
+ 
+     def connect_target(self, host):
+         i = host.find(':')
+         if i != -1:
+             port = int(host[i+1:])
+             host = host[:i]
+         else:
+             if self.method=='CONNECT':
+                 port = 443
+             else:
+                 port = 80
+ 
+         (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+ 
+         self.target = socket.socket(soc_family, soc_type, proto)
+         self.targetClosed = False
+         self.target.connect(address)
+ 
+     def method_CONNECT(self, path):
+         self.log += ' - CONNECT ' + path
+         
+         self.connect_target(path)
+         self.client.sendall(RESPONSE)
+         self.client_buffer = ''
+ 
+         self.server.printLog(self.log)
+         self.doCONNECT()
+ 
+     def doCONNECT(self):
+         socs = [self.client, self.target]
+         count = 0
+         error = False
+         while True:
+             count += 1
+             (recv, _, err) = select.select(socs, [], socs, 3)
+             if err:
+                 error = True
+             if recv:
+                 for in_ in recv:
+ 		    try:
+                         data = in_.recv(BUFLEN)
+                         if data:
+ 			    if in_ is self.target:
+ 				self.client.send(data)
+                             else:
+                                 while data:
+                                     byte = self.target.send(data)
+                                     data = data[byte:]
+ 
+                             count = 0
+ 			else:
+ 			    break
+ 		    except:
+                         error = True
+                         break
+             if count == TIMEOUT:
+                 error = True
+ 
+             if error:
+                 break
+ 
+ 
+ def print_usage():
+     print 'Usage: proxy.py -p <port>'
+     print '       proxy.py -b <bindAddr> -p <port>'
+     print '       proxy.py -b 0.0.0.0 -p 1080'
+ 
+ def parse_args(argv):
+     global LISTENING_ADDR
+     global LISTENING_PORT
+     
+     try:
+         opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+     except getopt.GetoptError:
+         print_usage()
+         sys.exit(2)
+     for opt, arg in opts:
+         if opt == '-h':
+             print_usage()
+             sys.exit()
+         elif opt in ("-b", "--bind"):
+             LISTENING_ADDR = arg
+         elif opt in ("-p", "--port"):
+             LISTENING_PORT = int(arg)
+     
+ 
+ def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+     
+     print "\n ==============================\n"
+     print "\n         PYTHON PROXY          \n"
+     print "\n ==============================\n"
+     print "corriendo ip: " + LISTENING_ADDR
+     print "corriendo port: " + str(LISTENING_PORT) + "\n"
+     print "Se ha Iniciado Por Favor Cierre el Terminal\n"
+     
+     server = Server(LISTENING_ADDR, LISTENING_PORT)
+     server.start()
+ 
+     while True:
+         try:
+             time.sleep(2)
+         except KeyboardInterrupt:
+             print 'Stopping...'
+             server.close()
+             break
+     
+ if __name__ == '__main__':
+     parse_args(sys.argv[1:])
+     main()
+EOF
+ 
+ screen -dmS pythonwe python proxy.py -p 80&
+ 
+ }
+ 
+ clear
+ clear
+ echo -e "$barra"
+ echo -e "\033[1;36mPAYLOAD + SSL \033[1;33m[BY KILLSHITO] "
+ echo -e "$barra"
+ echo -e "\033[1;32mSCRIPT AUTOCONFIGURACION "
+ echo -e "$barra"
+ echo -e "\033[1;37mRequiere tener el puerto libre ,80 y el 443"
+ echo -e "$barra"
+ echo -ne " \033[1;37mDeseja Prosseguir? [S/N]: "; read x
+ [[ $x = @(n|N) ]] && echo -e "$barra" && exit 0
+ echo -e "$barra"
+ echo -e "\033[1;36m Instalando SSL.. "
+ echo -e "$barra"
+ fun_bar 'inst_ssl'
+ echo -e "$barra"
+ echo -e "\033[1;36m Configurando PYTHON.. "
+ echo -e "$barra"
+ fun_bar 'inst_py'
+ rm -rf proxy.py
+ echo -e "$barra"
+ echo -e " \033[1;37mAHORA HAGA LO SIGUENTE "
+ echo -e " \033[1;37mPARA CREAR UN USUARIO ESCRIBA :CREARUSER "
+ echo -e " \033[1;37mPARA REMOVE UN USUARIO ESCRIBA :REMOUSER "
+ echo -e "$barra"
+ echo
+ echo
+ echo '
+ echo
+ read -p "Usuario :" name
+ read -p "Contraseña :" pass
+ useradd -M -s /bin/false $name
+ (echo $pass; echo $pass)|passwd $name 2>/dev/null' > /bin/CREARUSER &&chmod +x /bin/CREARUSER
+ echo '
+ echo
+ read -p "Escriba su usuario que desa remover :" user
+ kill $(ps -u $user |awk '{print $1}') >/dev/null 2>/dev/null ; userdel --force $us' >/bin/REMOUSER &&chmod +x /bin/REMOUSER
+ echo -e "\E[44;1;37mPRESIONA 0 PARA SALIR DE TODO\033[0m" "\E[41;1;37m[15]-AUTO MENU\033[0m" 
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done 

+ 7 - 0
Omar-SSHPLUS-OLD/autoiniciossl.sh

@@ -0,0 +1,7 @@
+#!/bin/bash
+ apt-get install stunnel4 -y
+ sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+ service stunnel4 restart
+ service stunnel4 start
+ 
+  

BIN
Omar-SSHPLUS-OLD/badvpn-udpgw


+ 44 - 0
Omar-SSHPLUS-OLD/bloquear.sh

@@ -0,0 +1,44 @@
+#!/bin/bash
+ clear
+ echo -e "\E[44;1;37mINFORMACION Y LISTA DE TODOS LOS USUARIOS CREADOS PARA BLOCKEAR DETALLADOS••••\033[0m"
+ amorT=$(awk -F: '$3>=1000 {print $1}' /etc/passwd | grep -v nobody)
+ var1=$(printf ' %-15s' $amorT)
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
+ echo -e "\033[1;34m$var1\033[0m"
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
+ echo -e "\E[44;1;37mESCRIVE EL NUMERO 1 PARA BLOCKEAR UN USUARIO OBSERVASION ESCRIVIRLOS SIN ERROR\033[0m"
+ echo -e "\E[44;1;37mESCRIVE 1\033[0m"
+ read opcion
+ case $opcion in
+ 1)
+ echo -e  "\E[44;1;37mESCRIVE EL USUARIO PARA BLOCKEAR\033[0m"
+ read user
+ usermod -L $user
+ sleep 1s
+ echo -e "\E[41;1;37mFUE BLOCKEADO\033[0m"
+ echo -e "\E[44;1;37mESCRIVE 3 PARA AUTOVOLVER O 0 PARA SALIR DE TODO\033[0m          " "\033[1;33m\033[2;33m\E[41;1;37m[15]-MENU PRINCIPAL\033[0m"
+ ;;
+ esac
+ opc=0
+ until [ $opc -eq 0 ]
+ do
+ case $opc in
+ 2)/root/bloquear.sh
+ ;;
+ 3)/root/omar
+ esac
+ read opc
+ done
+ [ $? -eq 0 ]
+ while [ "$opcion" != "0" ]
+ do
+ read opcion
+ case $opcion in
+ 
+ 3)/root/bloquear.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done 

+ 294 - 0
Omar-SSHPLUS-OLD/c.sh

@@ -0,0 +1,294 @@
+#!/bin/bash
+ clear
+ echo -e               "\033[1;33m                 ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m                 ""\E[41;1;37m  << ACTIVACION Y DESACTIVACION TCP SPEED >>  \033[0m"
+ echo -e               "\033[1;33m                 ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e "\E[41;1;37mSI ACTIVAS BBR DESACTIVA PRIMERO PARA ACTIVAR CUBIC Y BBR\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] • ACTIVAR TCP SPEED BBR\033[0m     ""\E[48;1;37m[3] • ACTIVAR TCP SPEED CUBIC\033[0m"
+ echo -e "\E[48;1;37m[2] • DESACTIVAR TCP SPEED BBR\033[0m  ""\E[48;1;37m[4] • DESACTIVAR TCP SPEED CUBIC\033[0m"
+ echo ""
+ tput setaf 7 ; tput setab 4 ; tput bold ; printf '%0s%s%-0s' "SISTEMA TCP ACTIVO EN:" ; tput sgr0 ; tput setaf 5 ; tput bold ; printf '%0s%-1s>>%-1s' ; tput sgr0 ; tput setaf 7 ; tput setab 1 ; tput bold ; printf '%0s%0s%-0s'
+ sysctl net.ipv4.tcp_congestion_control ; tput sgr0
+ echo ""
+ echo ""
+ echo -e "\E[41;1;37mCAMBIA DNS DE GOOGLE A CLOUDFLARE CAMBIAR AL GUSTO EL DNS\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[5] • ACTIVAR DNS DE CLOUDFLARE\033[0m ""\E[48;1;37m[7] • ACTIVAR DNS DE GOOGLE\033[0m"
+ echo -e "\E[48;1;37m[6] • DESACTIVAR DNS CLOUDFLARE\033[0m ""\E[48;1;37m[8] • DESACTIVAR DNS GOOGLE\033[0m"
+ echo -e "\033[1;35m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e "\E[48;1;37m[9] • ACTIVAR DNS DE OPENDNS\033[0m    ""\E[48;1;37m[11]• ACTIVAR DNS QUAD9\033[0m"
+ echo -e "\E[48;1;37m[10]• DESACTIVAR DNS OPENDNS\033[0m    ""\E[48;1;37m[12]• DESACTIVAR DNS QUAD9\033[0m"
+ echo -e "\033[1;35m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e "\E[48;1;37m[13]• ACTIVAR ESTABLE DNS.WATCH\033[0m ""\E[48;1;37m[16]• ACTIVAR DNS NETFLIX Y JUEGOS\033[0m"
+ echo -e "\E[48;1;37m[14]• DESACTIVAR EL DNS.WATCH\033[0m   ""\E[48;1;37m[17]• DESACTIVAR DNS NETFLIX Y JUEGOS\033[0m"
+ echo ""
+ tput setaf 7 ; tput setab 4 ; tput bold ; printf '%0s%s%-0s' "DNS ACTUAL Y EN USO:" ; tput sgr0 ; tput setaf 5 ; tput bold ; printf '%0s%-1s>>%-1s' ; tput sgr0 ; tput setaf 7 ; tput setab 1 ; tput bold ;  printf '%0s%s%-0s\n' "ACTIVAR EL APAGADO Y DESACTIVAR EL ONLINE PARA CAMBIAR" ; tput sgr0 ; tput setaf 7 ; tput setab 1 ; tput bold ;
+ cat /etc/resolv.conf | grep nameserver ; tput sgr0
+ echo ""
+ echo -e "\E[41;1;37m[15]-AUTO-MENU\033[0m"   "\E[41;1;37m[00]-EXIT\033[0m"
+ echo ""
+ function ac () {
+ echo -e "\E[44;1;37mTCP SPEED BBR A SIDO ACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ echo "net.ipv4.tcp_window_scaling = 1
+ net.core.default_qdisc=fq
+ net.ipv6.conf.all.disable_ipv6=1
+ net.ipv6.conf.default.disable_ipv6=1
+ net.core.rmem_max = 16777216
+ net.core.wmem_max = 16777216
+ net.ipv4.tcp_rmem = 4096 87380 16777216
+ net.ipv4.tcp_wmem = 4096 16384 16777216
+ net.ipv4.tcp_low_latency = 1
+ net.ipv4.tcp_slow_start_after_idle = 0
+ net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
+ sudo sysctl -p
+ /root/c.sh
+ clear
+ }
+ function ad () {
+ echo -e "\E[44;1;37mTCP SPEED BBR A SIDO DESACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ net.ipv4.tcp_window_scaling = 1
+ net.core.default_qdisc=fq
+ net.ipv6.conf.all.disable_ipv6=1
+ net.ipv6.conf.default.disable_ipv6=1
+ net.core.rmem_max = 16777216
+ net.core.wmem_max = 16777216
+ net.ipv4.tcp_rmem = 4096 87380 16777216
+ net.ipv4.tcp_wmem = 4096 16384 16777216
+ net.ipv4.tcp_low_latency = 1
+ net.ipv4.tcp_slow_start_after_idle = 0
+ net.ipv4.tcp_congestion_control=bbr" /etc/sysctl.conf > /tmp/syscl && mv -f /tmp/syscl /etc/sysctl.conf
+ sudo sysctl -p
+ /root/c.sh
+ }
+ function es () {
+ echo -e "\E[44;1;37mTCP SPEED CUBIC A SIDO ACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ echo "net.ipv4.tcp_window_scaling = 1
+ net.core.default_qdisc=fq
+ net.ipv6.conf.all.disable_ipv6=1
+ net.ipv6.conf.default.disable_ipv6=1
+ net.core.rmem_max = 16777216
+ net.core.wmem_max = 16777216
+ net.ipv4.tcp_rmem = 4096 87380 16777216
+ net.ipv4.tcp_wmem = 4096 16384 16777216
+ net.ipv4.tcp_low_latency = 1
+ net.ipv4.tcp_slow_start_after_idle = 0
+ net.ipv4.tcp_congestion_control=cubic" >> /etc/sysctl.conf
+ sudo sysctl -p
+ /root/c.sh
+ }
+ function as () {
+ echo -e "\E[44;1;37mTCP SPEED CUBIC A SIDO DESACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ net.ipv4.tcp_window_scaling = 1
+ net.core.default_qdisc=fq
+ net.ipv6.conf.all.disable_ipv6=1
+ net.ipv6.conf.default.disable_ipv6=1
+ net.core.rmem_max = 16777216
+ net.core.wmem_max = 16777216
+ net.ipv4.tcp_rmem = 4096 87380 16777216
+ net.ipv4.tcp_wmem = 4096 16384 16777216
+ net.ipv4.tcp_low_latency = 1
+ net.ipv4.tcp_slow_start_after_idle = 0
+ net.ipv4.tcp_congestion_control=cubic" /etc/sysctl.conf > /tmp/syscl && mv -f /tmp/syscl /etc/sysctl.conf
+ sudo sysctl -p
+ /root/c.sh
+ clear
+ }
+ function uy () {
+ echo -e "\E[44;1;37mMODULO SPEED A SIDO ACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ echo "net.ipv6.conf.all.disable_ipv6=1
+ net.ipv6.conf.default.disable_ipv6=1
+ net.core.rmem_default = 524288
+ net.core.rmem_max = 524288
+ net.core.wmem_default = 524288
+ net.core.wmem_max = 524288
+ net.ipv4.tcp_wmem = 87380 4096 524288
+ net.ipv4.tcp_rmem = 87380 4096 524288
+ net.ipv4.tcp_mem = 524288 524288 524288
+ net.ipv4.tcp_rfc1337 = 1
+ net.ipv4.ip_no_pmtu_disc = 0
+ net.ipv4.tcp_sack = 1
+ net.ipv4.tcp_fack = 1
+ net.ipv4.tcp_window_scaling = 1
+ net.ipv4.tcp_timestamps = 1
+ net.ipv4.tcp_ecn = 0
+ net.ipv4.route.flush = 1" >> /etc/sysctl.conf
+ sudo sysctl -p
+ /root/c.sh
+ }
+ function ag () {
+ echo -e "\E[44;1;37mMODULO SPEED A SIDO DESACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ net.ipv6.conf.all.disable_ipv6=1
+ net.ipv6.conf.default.disable_ipv6=1
+ net.core.rmem_default = 524288
+ net.core.rmem_max = 524288
+ net.core.wmem_default = 524288
+ net.core.wmem_max = 524288
+ net.ipv4.tcp_wmem = 87380 4096 524288
+ net.ipv4.tcp_rmem = 87380 4096 524288
+ net.ipv4.tcp_mem = 524288 524288 524288
+ net.ipv4.tcp_rfc1337 = 1
+ net.ipv4.ip_no_pmtu_disc = 0
+ net.ipv4.tcp_sack = 1
+ net.ipv4.tcp_fack = 1
+ net.ipv4.tcp_window_scaling = 1
+ net.ipv4.tcp_timestamps = 1
+ net.ipv4.tcp_ecn = 0
+ net.ipv4.route.flush = 1" /etc/sysctl.conf > /tmp/syscl && mv -f /tmp/syscl /etc/resolv.conf
+ /root/c.sh
+ }
+ function bb () {
+ echo -e "\E[44;1;37mDNS CLOUDFLARE A SIDO ACTIVADO\033[0m"
+ sleep 2.5s
+ echo "
+ nameserver 1.1.1.1
+ nameserver 1.0.0.1" >> /etc/resolv.conf
+ /root/c.sh
+ }
+ function cg () {
+ echo -e "\E[44;1;37mDNS CLOUDFLARE A SIDO DESACTIVADO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ nameserver 1.1.1.1
+ nameserver 1.0.0.1
+ nameserver 127.0.0.53
+ options edns0
+ #nameserver 127.0.0.53"  /etc/resolv.conf > /tmp/syscl && mv -f /tmp/syscl /etc/resolv.conf
+ /root/c.sh
+ }
+ function vb () {
+ echo -e "\E[44;1;37mDNS DE GOOGLE A SIDO ACTIVADO\033[0m"
+ sleep 2.5s
+ echo "
+ nameserver 8.8.8.8
+ nameserver 8.8.4.4" >> /etc/resolv.conf
+ /root/c.sh
+ }
+ function re () {
+ echo -e "\E[44;1;37mDNS DE GOOGLE A SIDO DESACTIVADO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ nameserver 8.8.8.8
+ nameserver 8.8.4.4
+ nameserver 127.0.0.53
+ options edns0
+ #nameserver 127.0.0.53"  /etc/resolv.conf > /tmp/syscl && mv -f /tmp/syscl /etc/resolv.conf
+ /root/c.sh
+ }
+ function tt () {
+ echo -e "\E[44;1;37mDNS DE OPENDNS A SIDO ACTIVADO\033[0m"
+ sleep 2.5s
+ echo "
+ nameserver 208.67.222.222
+ nameserver 208.67.220.220" >> /etc/resolv.conf
+ /root/c.sh
+ }
+ function bn () {
+ echo -e "\E[44;1;37mDNS DE OPENDNS A SIDO DESACTIVADO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ nameserver 208.67.222.222
+ nameserver 208.67.220.220
+ nameserver 127.0.0.53
+ options edns0
+ #nameserver 127.0.0.53" /etc/resolv.conf > /tmp/syscl && mv -f /tmp/syscl /etc/resolv.conf
+ /root/c.sh
+ }
+ function kl () {
+ echo -e "\E[44;1;37mDNS QUAD9 A SIDO ACTIVADO\033[0m"
+ sleep 2.5s
+ echo "
+ nameserver 9.9.9.9
+ nameserver 149.112.112.112" >> /etc/resolv.conf
+ /root/c.sh
+ }
+ function mk () {
+ echo -e "\E[44;1;37mDNS QUAD9 A SIDO DESACTIVADO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ nameserver 9.9.9.9
+ nameserver 149.112.112.112
+ nameserver 127.0.0.53
+ options edns0
+ #nameserver 127.0.0.53" /etc/resolv.conf > /tmp/syscl && mv -f /tmp/syscl /etc/resolv.conf
+ /root/c.sh
+ }
+ function pq () {
+ echo -e "\E[0;37;44mDNS NETFLIX Y JUEGOS ACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ echo "
+ nameserver 45.55.147.169
+ nameserver 204.12.225.226" >> /etc/resolv.conf
+ /root/c.sh
+ }
+ function qp () {
+ grep -v "^a
+ nameserver 45.55.147.169
+ nameserver 204.12.225.226" /etc/resolv.conf > /tmp/syscl && mv -f /tmp/syscl /etc/resolv.conf
+ /root/c.sh
+ }
+ function as () {
+ echo -e "\E[0;37;44mDNS ACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ echo "
+ nameserver 84.200.69.80
+ nameserver 84.200.70.40" >> /etc/resolv.conf
+ /root/c.sh
+ }
+ function adn () {
+ echo -e "\E[0;37;44mDNS.WATCH DESACTIVADO CON EXITO\033[0m"
+ sleep 2.5s
+ grep -v "^a
+ nameserver 84.200.69.80
+ nameserver 84.200.70.40" /etc/resolv.conf > /tmp/syscl && mv -f /tmp/syscl /etc/resolv.conf
+ /root/c.sh
+ }
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 1)ac
+ ;;
+ 2)ad
+ ;;
+ 3)es
+ ;;
+ 4)as
+ ;;
+ 5)bb
+ ;;
+ 6)cg
+ ;;
+ 7)vb
+ ;;
+ 8)re
+ ;;
+ 9)tt
+ ;;
+ 10)bn
+ ;;
+ 11)kl
+ ;;
+ 12)mk
+ ;;
+ 13)as
+ ;;
+ 14)adn
+ ;;
+ 15)/root/menu
+ ;;
+ 16)pq
+ ;;
+ 17)qp
+ ;;
+ esac
+ exit
+  

+ 43 - 0
Omar-SSHPLUS-OLD/cuss.sh

@@ -0,0 +1,43 @@
+#!/bin/bash
+ clear
+ rm -rf /usr/bin/cuss.sh
+ ln -s /root/cuss.sh /usr/bin/cuss.sh
+ echo -e " \E[44;1;37mCUENTA SSH Y FECHA\033[0m"
+ echo -ne "\033[1;32mNombre de usuario:\033[1;37m "; read usuario
+ echo -ne "\033[1;32mContraseña:\033[1;37m "; read passwd
+ echo -ne "\033[1;32mDias Para Expirar:\033[1;37m "; read dias
+ echo -ne "\033[1;32mLímite de conexión:\033[1;37m "; read limiteconexion
+ [ $? -eq 0 ] && tput setaf 2 ; tput bold ; echo ""; echo -e "\033[1;32mIP: \033[1;37m$IP" ; echo -e "\033[1;32mUsuário: \033[1;37m$usuario" ; echo -e "\033[1;32mContraseña: \033[1;37m$passwd" ; echo -e "\033[1;32mExpira en: \033[1;37m$gui" ; echo -e "\033[1;32mLimite de conexiónes: \033[1;37m$limiteconexion" ; echo "" || echo "No se pudo crear un usuario!" ; tput sgr0
+ final=$(date "+%Y-%m-%d" -d "+$dias days")
+ gui=$(date "+%d/%m/%Y" -d "+$dias days")
+ pass=$(perl -e 'print crypt($ARGV[0], "passwd")' $passwd)
+ sleep 0.5s
+ useradd -e $final -M -s /bin/false -p $pass $usuario
+ echo "$passwd" > /etc/SSHPlus/amor/$usuario
+ echo "$usuario $limiteconexion " >> /root/usuarios.db
+ clear
+ o="$(ip addr | grep inet | grep -v inet6 | grep -v "host lo" | awk '{print $2}' | awk -F "/" '{print $1}')"
+ echo -e "\E[41;1;37mCREADA CON EXITO\033[0m"
+ [ $? -eq 0 ] && tput setaf 2 ; tput bold ; echo ""; echo -e "\033[1;32mIP:\033[1;37m$o \033[1;37m$IP" ; echo -e "\033[1;32mUsuário: \033[1;37m$usuario" ; echo -e "\033[1;32mContraseña: \033[1;37m$passwd" ; echo -e "\033[1;32mExpira en: \033[1;37m$gui" ; echo -e "\033[1;32mLimite de conexiónes: \033[1;37m$limiteconexion" ; echo "" || echo "No se pudo crear un usuario!" ; tput sgr0
+ echo "#!/bin/bash
+ userdel --force $usuario > /dev/null 2>&1
+ rm /etc/SSHPlus/amor/$usuario
+ rm -rf /etc/SSHPlus/amor/$usuario.sh
+ exit" > /etc/SSHPlus/amor/$usuario.sh
+ chmod +x /etc/SSHPlus/amor/$usuario.sh
+ at -f /etc/SSHPlus/amor/$usuario.sh now + 3 $dias > /dev/null 2>&1
+ echo -e "\E[44;1;37mA SIDO CREADA ESCRIVE 1 PARA AUTOVOLVER\033[0m               " "\033[1;33m\033[2;33m\E[41;1;37m[15]-MENU PRINCIPAL\033[0m"
+ echo -e "\E[44;1;37mA SIDO CREADA ESCRIVE 0 PARA SALIR DE TODO\033[0m"
+ while [ "$opcion" != "0" ]
+ do
+ read opcion
+ case $opcion in
+ 
+ 1)/root/cuss.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done
+  

+ 328 - 0
Omar-SSHPLUS-OLD/d.sh

@@ -0,0 +1,328 @@
+#!/bin/bash
+ clear
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m                   ""\E[41;1;37m  << INSTALA Y DESINSTALAR DROPBEAR  >>    \033[0m"
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e "\E[41;1;37mPARA ESTE PROCESO DEVES INSTALAR DROPBEAR PRIMERO\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] • INSTALAR DROPBEAR\033[0m        ""\E[48;1;37m[5] • CAMBIAR PUERTO DROPBEAR\033[0m"
+ echo -e "\E[48;1;37m[2] • DESACTIVAR DROPBEAR\033[0m"
+ echo -e "\E[48;1;37m[3] • ACTIVAR DROPBEAR\033[0m"
+ echo ""
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[04]-AUTO MENU\033[0m"
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[0]-SALIR\033[0m"
+ function j () {
+ echo -ne "\E[41;1;37mESCRIVE TU NUEVO PUERTO DROPBEAR DESEADO:\033[0m""\033[1;37m>> "; read t
+ sleep 2.5s
+ echo ""
+ echo -e "\E[44;1;37mNUEVO PUERTO DROPBEAR \E[41;1;37m$t\033[0m\E[44;1;37m A SIDO AGREGADO\033[0m"
+ sleep 2.5s
+ (
+ less << f > /etc/default/dropbear
+ NO_START=0
+ DROPBEAR_EXTRA_ARGS="-p $t"
+ DROPBEAR_BANNER="/etc/dropbear/banner"
+ DROPBEAR_RECEIVE_WINDOW=65536
+f
+ )
+ (
+ less << u > /root/ddd.sh
+ import socket, threading, thread, select, signal, sys, time, getopt
+ 
+ # CONFIG
+ LISTENING_ADDR = '0.0.0.0'
+ LISTENING_PORT = $t
+ PASS = ''
+ 
+ # CONST
+ BUFLEN = 4096 * 4
+ TIMEOUT = 60
+ DEFAULT_HOST = "127.0.0.1:22"
+ RESPONSE = 'HTTP/1.1 200 OMAR PROTOCOLO \r\n\r\n'
+  
+ class Server(threading.Thread):
+     def __init__(self, host, port):
+         threading.Thread.__init__(self)
+         self.running = False
+         self.host = host
+         self.port = port
+         self.threads = []
+ 	self.threadsLock = threading.Lock()
+ 	self.logLock = threading.Lock()
+ 
+     def run(self):
+         self.soc = socket.socket(socket.AF_INET)
+         self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+         self.soc.settimeout(2)
+         self.soc.bind((self.host, self.port))
+         self.soc.listen(0)
+         self.running = True
+ 
+         try:                    
+             while self.running:
+                 try:
+                     c, addr = self.soc.accept()
+                     c.setblocking(1)
+                 except socket.timeout:
+                     continue
+                 
+                 conn = ConnectionHandler(c, self, addr)
+                 conn.start();
+                 self.addConn(conn)
+         finally:
+             self.running = False
+             self.soc.close()
+             
+     def printLog(self, log):
+         self.logLock.acquire()
+         print log
+         self.logLock.release()
+ 	
+     def addConn(self, conn):
+         try:
+             self.threadsLock.acquire()
+             if self.running:
+                 self.threads.append(conn)
+         finally:
+             self.threadsLock.release()
+                     
+     def removeConn(self, conn):
+         try:
+             self.threadsLock.acquire()
+             self.threads.remove(conn)
+         finally:
+             self.threadsLock.release()
+                 
+     def close(self):
+         try:
+             self.running = False
+             self.threadsLock.acquire()
+             
+             threads = list(self.threads)
+             for c in threads:
+                 c.close()
+         finally:
+             self.threadsLock.release()
+ 			
+ 
+ class ConnectionHandler(threading.Thread):
+     def __init__(self, socClient, server, addr):
+         threading.Thread.__init__(self)
+         self.clientClosed = False
+         self.targetClosed = True
+         self.client = socClient
+         self.client_buffer = ''
+         self.server = server
+         self.log = 'Connection: ' + str(addr)
+ 
+     def close(self):
+         try:
+             if not self.clientClosed:
+                 self.client.shutdown(socket.SHUT_RDWR)
+                 self.client.close()
+         except:
+             pass
+         finally:
+             self.clientClosed = True
+             
+         try:
+             if not self.targetClosed:
+                 self.target.shutdown(socket.SHUT_RDWR)
+                 self.target.close()
+         except:
+             pass
+         finally:
+             self.targetClosed = True
+ 
+     def run(self):
+         try:
+             self.client_buffer = self.client.recv(BUFLEN)
+         
+             hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+             
+             if hostPort == '':
+                 hostPort = DEFAULT_HOST
+ 
+             split = self.findHeader(self.client_buffer, 'X-Split')
+ 
+             if split != '':
+                 self.client.recv(BUFLEN)
+             
+             if hostPort != '':
+                 passwd = self.findHeader(self.client_buffer, 'X-Pass')
+ 				
+                 if len(PASS) != 0 and passwd == PASS:
+                     self.method_CONNECT(hostPort)
+                 elif len(PASS) != 0 and passwd != PASS:
+                     self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                 elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+                     self.method_CONNECT(hostPort)
+                 else:
+                     self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+             else:
+                 print '- No X-Real-Host!'
+                 self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+ 
+         except Exception as e:
+             self.log += ' - error: ' + e.strerror
+             self.server.printLog(self.log)
+ 	    pass
+         finally:
+             self.close()
+             self.server.removeConn(self)
+ 
+     def findHeader(self, head, header):
+         aux = head.find(header + ': ')
+     
+         if aux == -1:
+             return ''
+ 
+         aux = head.find(':', aux)
+         head = head[aux+2:]
+         aux = head.find('\r\n')
+ 
+         if aux == -1:
+             return ''
+ 
+         return head[:aux];
+ 
+     def connect_target(self, host):
+         i = host.find(':')
+         if i != -1:
+             port = int(host[i+1:])
+             host = host[:i]
+         else:
+             if self.method=='CONNECT':
+                 port = 443
+             else:
+                 port = 22
+ 
+         (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+ 
+         self.target = socket.socket(soc_family, soc_type, proto)
+         self.targetClosed = False
+         self.target.connect(address)
+ 
+     def method_CONNECT(self, path):
+         self.log += ' - CONNECT ' + path
+         
+         self.connect_target(path)
+         self.client.sendall(RESPONSE)
+         self.client_buffer = ''
+ 
+         self.server.printLog(self.log)
+         self.doCONNECT()
+ 
+     def doCONNECT(self):
+         socs = [self.client, self.target]
+         count = 0
+         error = False
+         while True:
+             count += 1
+             (recv, _, err) = select.select(socs, [], socs, 3)
+             if err:
+                 error = True
+             if recv:
+                 for in_ in recv:
+ 		    try:
+                         data = in_.recv(BUFLEN)
+                         if data:
+ 			    if in_ is self.target:
+ 				self.client.send(data)
+                             else:
+                                 while data:
+                                     byte = self.target.send(data)
+                                     data = data[byte:]
+ 
+                             count = 0
+ 			else:
+ 			    break
+ 		    except:
+                         error = True
+                         break
+             if count == TIMEOUT:
+                 error = True
+ 
+             if error:
+                 break
+ 
+ 
+ def print_usage():
+     print 'Usage: proxy.py -p <port>'
+     print '       proxy.py -b <bindAddr> -p <port>'
+     print '       proxy.py -b 0.0.0.0 -p 1080'
+ 
+ def parse_args(argv):
+     global LISTENING_ADDR
+     global LISTENING_PORT
+     
+     try:
+         opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+     except getopt.GetoptError:
+         print_usage()
+         sys.exit(2)
+     for opt, arg in opts:
+         if opt == '-h':
+             print_usage()
+             sys.exit()
+         elif opt in ("-b", "--bind"):
+             LISTENING_ADDR = arg
+         elif opt in ("-p", "--port"):
+             LISTENING_PORT = int(arg)
+     
+ 
+ def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+     
+     print "\n ==============================\n"
+     print "\n         PYTHON PROXY          \n"
+     print "\n ==============================\n"
+     print "corriendo ip: " + LISTENING_ADDR
+     print "corriendo port: " + str(LISTENING_PORT) + "\n"
+     print "Se ha Iniciado Por Favor Cierre el Terminal\n"
+     
+     server = Server(LISTENING_ADDR, LISTENING_PORT)
+     server.start()
+ 
+     while True:
+         try:
+             time.sleep(2)
+         except KeyboardInterrupt:
+             print 'Stopping...'
+             server.close()
+             break
+     
+ if __name__ == '__main__':
+     parse_args(sys.argv[1:])
+     main()
+u
+ )
+ service dropbear stop
+ service dropbear start
+ /root/d.sh
+ }
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 1)/root/dd.sh
+ echo -e "\E[44;1;37mDROPBEAR INSTALADO CON EXITO\033[0m"
+ ;;
+ 2)echo -e "\E[44;1;37mDROPBEAR AUTO DETENIDO CON EXITO\033[0m"
+ sleep 1s
+ service dropbear stop && /root/menu
+ ;;
+ 3)echo -e "\E[44;1;37mDROPBEAR ACTIVADO CON EXITO\033[0m"
+ sleep 1s
+ service dropbear start && /root/menu
+ ;;
+ 4)/root/menu
+ ;;
+ 5)j
+ ;;
+ esac
+ exit
+ done
+ clear
+  

+ 302 - 0
Omar-SSHPLUS-OLD/dd.sh

@@ -0,0 +1,302 @@
+#!/bin/bash
+ echo -ne "\E[0;37;41mESCRIVE TU PUERTO A INSTALAR:\033[0m""\033[1;37m>>\033[0m "; read s
+ apt-get install dropbear -y > /dev/null 2>&1
+ touch /etc/dropbear/banner
+ echo -e "$barra"
+ (
+ less << f > /etc/default/dropbear
+ NO_START=0
+ DROPBEAR_EXTRA_ARGS="-p $s"
+ DROPBEAR_RECEIVE_WINDOW=65536
+f
+ )
+ (
+ touch ddd.sh
+ chmod u+x ddd.sh
+ less << u > /root/ddd.sh
+ import socket, threading, thread, select, signal, sys, time, getopt
+ 
+ # CONFIG
+ LISTENING_ADDR = '0.0.0.0'
+ LISTENING_PORT = $s
+ PASS = ''
+ 
+ # CONST
+ BUFLEN = 4096 * 4
+ TIMEOUT = 60
+ DEFAULT_HOST = "127.0.0.1:22"
+ RESPONSE = 'HTTP/1.1 200 OMAR PROTOCOLO \r\n\r\n'
+  
+ class Server(threading.Thread):
+     def __init__(self, host, port):
+         threading.Thread.__init__(self)
+         self.running = False
+         self.host = host
+         self.port = port
+         self.threads = []
+ 	self.threadsLock = threading.Lock()
+ 	self.logLock = threading.Lock()
+ 
+     def run(self):
+         self.soc = socket.socket(socket.AF_INET)
+         self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+         self.soc.settimeout(2)
+         self.soc.bind((self.host, self.port))
+         self.soc.listen(0)
+         self.running = True
+ 
+         try:                    
+             while self.running:
+                 try:
+                     c, addr = self.soc.accept()
+                     c.setblocking(1)
+                 except socket.timeout:
+                     continue
+                 
+                 conn = ConnectionHandler(c, self, addr)
+                 conn.start();
+                 self.addConn(conn)
+         finally:
+             self.running = False
+             self.soc.close()
+             
+     def printLog(self, log):
+         self.logLock.acquire()
+         print log
+         self.logLock.release()
+ 	
+     def addConn(self, conn):
+         try:
+             self.threadsLock.acquire()
+             if self.running:
+                 self.threads.append(conn)
+         finally:
+             self.threadsLock.release()
+                     
+     def removeConn(self, conn):
+         try:
+             self.threadsLock.acquire()
+             self.threads.remove(conn)
+         finally:
+             self.threadsLock.release()
+                 
+     def close(self):
+         try:
+             self.running = False
+             self.threadsLock.acquire()
+             
+             threads = list(self.threads)
+             for c in threads:
+                 c.close()
+         finally:
+             self.threadsLock.release()
+ 			
+ 
+ class ConnectionHandler(threading.Thread):
+     def __init__(self, socClient, server, addr):
+         threading.Thread.__init__(self)
+         self.clientClosed = False
+         self.targetClosed = True
+         self.client = socClient
+         self.client_buffer = ''
+         self.server = server
+         self.log = 'Connection: ' + str(addr)
+ 
+     def close(self):
+         try:
+             if not self.clientClosed:
+                 self.client.shutdown(socket.SHUT_RDWR)
+                 self.client.close()
+         except:
+             pass
+         finally:
+             self.clientClosed = True
+             
+         try:
+             if not self.targetClosed:
+                 self.target.shutdown(socket.SHUT_RDWR)
+                 self.target.close()
+         except:
+             pass
+         finally:
+             self.targetClosed = True
+ 
+     def run(self):
+         try:
+             self.client_buffer = self.client.recv(BUFLEN)
+         
+             hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+             
+             if hostPort == '':
+                 hostPort = DEFAULT_HOST
+ 
+             split = self.findHeader(self.client_buffer, 'X-Split')
+ 
+             if split != '':
+                 self.client.recv(BUFLEN)
+             
+             if hostPort != '':
+                 passwd = self.findHeader(self.client_buffer, 'X-Pass')
+ 				
+                 if len(PASS) != 0 and passwd == PASS:
+                     self.method_CONNECT(hostPort)
+                 elif len(PASS) != 0 and passwd != PASS:
+                     self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                 elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+                     self.method_CONNECT(hostPort)
+                 else:
+                     self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+             else:
+                 print '- No X-Real-Host!'
+                 self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+ 
+         except Exception as e:
+             self.log += ' - error: ' + e.strerror
+             self.server.printLog(self.log)
+ 	    pass
+         finally:
+             self.close()
+             self.server.removeConn(self)
+ 
+     def findHeader(self, head, header):
+         aux = head.find(header + ': ')
+     
+         if aux == -1:
+             return ''
+ 
+         aux = head.find(':', aux)
+         head = head[aux+2:]
+         aux = head.find('\r\n')
+ 
+         if aux == -1:
+             return ''
+ 
+         return head[:aux];
+ 
+     def connect_target(self, host):
+         i = host.find(':')
+         if i != -1:
+             port = int(host[i+1:])
+             host = host[:i]
+         else:
+             if self.method=='CONNECT':
+                 port = 443
+             else:
+                 port = 22
+ 
+         (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+ 
+         self.target = socket.socket(soc_family, soc_type, proto)
+         self.targetClosed = False
+         self.target.connect(address)
+ 
+     def method_CONNECT(self, path):
+         self.log += ' - CONNECT ' + path
+         
+         self.connect_target(path)
+         self.client.sendall(RESPONSE)
+         self.client_buffer = ''
+ 
+         self.server.printLog(self.log)
+         self.doCONNECT()
+ 
+     def doCONNECT(self):
+         socs = [self.client, self.target]
+         count = 0
+         error = False
+         while True:
+             count += 1
+             (recv, _, err) = select.select(socs, [], socs, 3)
+             if err:
+                 error = True
+             if recv:
+                 for in_ in recv:
+ 		    try:
+                         data = in_.recv(BUFLEN)
+                         if data:
+ 			    if in_ is self.target:
+ 				self.client.send(data)
+                             else:
+                                 while data:
+                                     byte = self.target.send(data)
+                                     data = data[byte:]
+ 
+                             count = 0
+ 			else:
+ 			    break
+ 		    except:
+                         error = True
+                         break
+             if count == TIMEOUT:
+                 error = True
+ 
+             if error:
+                 break
+ 
+ 
+ def print_usage():
+     print 'Usage: proxy.py -p <port>'
+     print '       proxy.py -b <bindAddr> -p <port>'
+     print '       proxy.py -b 0.0.0.0 -p 1080'
+ 
+ def parse_args(argv):
+     global LISTENING_ADDR
+     global LISTENING_PORT
+     
+     try:
+         opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+     except getopt.GetoptError:
+         print_usage()
+         sys.exit(2)
+     for opt, arg in opts:
+         if opt == '-h':
+             print_usage()
+             sys.exit()
+         elif opt in ("-b", "--bind"):
+             LISTENING_ADDR = arg
+         elif opt in ("-p", "--port"):
+             LISTENING_PORT = int(arg)
+     
+ 
+ def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+     
+     print "\n ==============================\n"
+     print "\n         PYTHON PROXY          \n"
+     print "\n ==============================\n"
+     print "corriendo ip: " + LISTENING_ADDR
+     print "corriendo port: " + str(LISTENING_PORT) + "\n"
+     print "Se ha Iniciado Por Favor Cierre el Terminal\n"
+     
+     server = Server(LISTENING_ADDR, LISTENING_PORT)
+     server.start()
+ 
+     while True:
+         try:
+             time.sleep(2)
+         except KeyboardInterrupt:
+             print 'Stopping...'
+             server.close()
+             break
+     
+ if __name__ == '__main__':
+     parse_args(sys.argv[1:])
+     main()
+u
+ )
+ service dropbear restart
+ service dropbear start
+ echo -e "/bin/false" >> /etc/shells
+ echo -e "\E[0;37;44mEL PUERTO \E[0;37;41m$s\033[0m""\E[0;37;44m A SIDO INSTALADO\033[0m"
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[04]-AUTO MENU\033[0m"
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[0]-SALIR\033[0m"
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 4)/root/menu
+ ;;
+ esac
+ exit
+ done
+  

+ 267 - 0
Omar-SSHPLUS-OLD/ddd.sh

@@ -0,0 +1,267 @@
+import socket, threading, thread, select, signal, sys, time, getopt
+
+# CONFIG
+LISTENING_ADDR = '0.0.0.0'
+LISTENING_PORT = 
+PASS = ''
+
+# CONST
+BUFLEN = 4096 * 4
+TIMEOUT = 60
+DEFAULT_HOST = "127.0.0.1:22"
+RESPONSE = 'HTTP/1.1 200 OMAR PROTOCOLO \r\n\r\n'
+ 
+class Server(threading.Thread):
+    def __init__(self, host, port):
+        threading.Thread.__init__(self)
+        self.running = False
+        self.host = host
+        self.port = port
+        self.threads = []
+	self.threadsLock = threading.Lock()
+	self.logLock = threading.Lock()
+
+    def run(self):
+        self.soc = socket.socket(socket.AF_INET)
+        self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        self.soc.settimeout(2)
+        self.soc.bind((self.host, self.port))
+        self.soc.listen(0)
+        self.running = True
+
+        try:                    
+            while self.running:
+                try:
+                    c, addr = self.soc.accept()
+                    c.setblocking(1)
+                except socket.timeout:
+                    continue
+                
+                conn = ConnectionHandler(c, self, addr)
+                conn.start();
+                self.addConn(conn)
+        finally:
+            self.running = False
+            self.soc.close()
+            
+    def printLog(self, log):
+        self.logLock.acquire()
+        print log
+        self.logLock.release()
+	
+    def addConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            if self.running:
+                self.threads.append(conn)
+        finally:
+            self.threadsLock.release()
+                    
+    def removeConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            self.threads.remove(conn)
+        finally:
+            self.threadsLock.release()
+                
+    def close(self):
+        try:
+            self.running = False
+            self.threadsLock.acquire()
+            
+            threads = list(self.threads)
+            for c in threads:
+                c.close()
+        finally:
+            self.threadsLock.release()
+			
+
+class ConnectionHandler(threading.Thread):
+    def __init__(self, socClient, server, addr):
+        threading.Thread.__init__(self)
+        self.clientClosed = False
+        self.targetClosed = True
+        self.client = socClient
+        self.client_buffer = ''
+        self.server = server
+        self.log = 'Connection: ' + str(addr)
+
+    def close(self):
+        try:
+            if not self.clientClosed:
+                self.client.shutdown(socket.SHUT_RDWR)
+                self.client.close()
+        except:
+            pass
+        finally:
+            self.clientClosed = True
+            
+        try:
+            if not self.targetClosed:
+                self.target.shutdown(socket.SHUT_RDWR)
+                self.target.close()
+        except:
+            pass
+        finally:
+            self.targetClosed = True
+
+    def run(self):
+        try:
+            self.client_buffer = self.client.recv(BUFLEN)
+        
+            hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+            
+            if hostPort == '':
+                hostPort = DEFAULT_HOST
+
+            split = self.findHeader(self.client_buffer, 'X-Split')
+
+            if split != '':
+                self.client.recv(BUFLEN)
+            
+            if hostPort != '':
+                passwd = self.findHeader(self.client_buffer, 'X-Pass')
+				
+                if len(PASS) != 0 and passwd == PASS:
+                    self.method_CONNECT(hostPort)
+                elif len(PASS) != 0 and passwd != PASS:
+                    self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+                    self.method_CONNECT(hostPort)
+                else:
+                    self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+            else:
+                print '- No X-Real-Host!'
+                self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+
+        except Exception as e:
+            self.log += ' - error: ' + e.strerror
+            self.server.printLog(self.log)
+	    pass
+        finally:
+            self.close()
+            self.server.removeConn(self)
+
+    def findHeader(self, head, header):
+        aux = head.find(header + ': ')
+    
+        if aux == -1:
+            return ''
+
+        aux = head.find(':', aux)
+        head = head[aux+2:]
+        aux = head.find('\r\n')
+
+        if aux == -1:
+            return ''
+
+        return head[:aux];
+
+    def connect_target(self, host):
+        i = host.find(':')
+        if i != -1:
+            port = int(host[i+1:])
+            host = host[:i]
+        else:
+            if self.method=='CONNECT':
+                port = 443
+            else:
+                port = 22
+
+        (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+
+        self.target = socket.socket(soc_family, soc_type, proto)
+        self.targetClosed = False
+        self.target.connect(address)
+
+    def method_CONNECT(self, path):
+        self.log += ' - CONNECT ' + path
+        
+        self.connect_target(path)
+        self.client.sendall(RESPONSE)
+        self.client_buffer = ''
+
+        self.server.printLog(self.log)
+        self.doCONNECT()
+
+    def doCONNECT(self):
+        socs = [self.client, self.target]
+        count = 0
+        error = False
+        while True:
+            count += 1
+            (recv, _, err) = select.select(socs, [], socs, 3)
+            if err:
+                error = True
+            if recv:
+                for in_ in recv:
+		    try:
+                        data = in_.recv(BUFLEN)
+                        if data:
+			    if in_ is self.target:
+				self.client.send(data)
+                            else:
+                                while data:
+                                    byte = self.target.send(data)
+                                    data = data[byte:]
+
+                            count = 0
+			else:
+			    break
+		    except:
+                        error = True
+                        break
+            if count == TIMEOUT:
+                error = True
+
+            if error:
+                break
+
+
+def print_usage():
+    print 'Usage: proxy.py -p <port>'
+    print '       proxy.py -b <bindAddr> -p <port>'
+    print '       proxy.py -b 0.0.0.0 -p 1080'
+
+def parse_args(argv):
+    global LISTENING_ADDR
+    global LISTENING_PORT
+    
+    try:
+        opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+    except getopt.GetoptError:
+        print_usage()
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt == '-h':
+            print_usage()
+            sys.exit()
+        elif opt in ("-b", "--bind"):
+            LISTENING_ADDR = arg
+        elif opt in ("-p", "--port"):
+            LISTENING_PORT = int(arg)
+    
+
+def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+    
+    print "\n ==============================\n"
+    print "\n         PYTHON PROXY          \n"
+    print "\n ==============================\n"
+    print "corriendo ip: " + LISTENING_ADDR
+    print "corriendo port: " + str(LISTENING_PORT) + "\n"
+    print "Se ha Iniciado Por Favor Cierre el Terminal\n"
+    
+    server = Server(LISTENING_ADDR, LISTENING_PORT)
+    server.start()
+
+    while True:
+        try:
+            time.sleep(2)
+        except KeyboardInterrupt:
+            print 'Stopping...'
+            server.close()
+            break
+    
+if __name__ == '__main__':
+    parse_args(sys.argv[1:])
+    main()

+ 45 - 0
Omar-SSHPLUS-OLD/desbloquear.sh

@@ -0,0 +1,45 @@
+#!/bin/bash
+ clear
+ echo -e "\E[44;1;37mINFORMACION Y LISTA DE TODOS LOS USUARIOS CREADOS PARA DESBLOQUEAR DETALLADOS•••\033[0m"
+ amorT=$(awk -F: '$3>=1000 {print $1}' /etc/passwd | grep -v nobody)
+ var1=$(printf ' %-15s' $amorT)
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
+ echo -e "\033[1;34m$var1\033[0m"
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
+ echo -e "\E[44;1;37mESCRIVE 1 PARA DESBLOQUEAR USUARIOS BLOQUEADOS OBSERVASION ESCRIVIRLOS SIN ERROR\033[0m"
+ echo -e "\E[44;1;37mESCRIVE 1\033[0m"
+ read opcion
+ case $opcion in
+ 1)
+ echo -e  "\E[44;1;37mESCRIVE EL USUARIO PARA DESBLOQUEAR\033[0m"
+ read user
+ usermod -U $user
+ sleep 1s
+ echo -e "\E[41;1;37mFUE DESBLOQUEADO\033[0m"
+ echo -e "\E[44;1;37mESCRIVE 4 PARA AUTOVOLVER O 0 PARA SALIR DE TODO\033[0m            "             "\033[1;33m\033[2;33m\E[41;1;37m[15]-MENU PRINCIPAL\033[0m"
+ ;;
+ esac
+ opc=0
+ until [ $opc -eq 0 ]
+ do
+ case $opc in
+ 2)/root/desbloquear.sh
+ ;;
+ 3)/root/omar
+ ;;
+ esac
+ read opc
+ done
+ [ $? -eq 0 ]
+ while [ "$opcion" != "0" ]
+ do
+ read opcion
+ case $opcion in
+ 
+ 4)/root/desbloquear.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done 

+ 3 - 0
Omar-SSHPLUS-OLD/desis.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+ apt-get purge stunnel4 -y
+  

+ 49 - 0
Omar-SSHPLUS-OLD/eliminar.sh

@@ -0,0 +1,49 @@
+#!/bin/bash
+ clear
+ echo -e "\E[44;1;37mINFORMACION Y LISTA DE TODOS LOS USUARIOS CREADOS PARA ELIMINAR DETALLADOS••••\033[0m"
+ amorT=$(awk -F: '$3>=1000 {print $1}' /etc/passwd | grep -v nobody)
+ var1=$(printf ' %-15s' $amorT)
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
+ echo -e "\033[1;34m$var1\033[0m"
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
+ echo -e "\E[44;1;37mESCRIVE EL NUMERO 1 PARA ELIMINAR UN USUARIO OBSERVASION ESCRIVIRLOS SIN ERROR\033[0m"
+ echo -e "\E[44;1;37mESCRIVE 1\033[0m"
+ read opcion
+ case $opcion in
+ 1)
+ echo -e  "\E[44;1;37mESCRIVE EL USUARIO PARA ELIMINAR\033[0m"
+ read user
+ userdel --force $user > /dev/null 2>&1
+ rm -rf /etc/SSHPlus/amor/$user*.sh
+ rm -rf /etc/SSHPlus/amor/$user
+ sleep 1.5s
+ echo -e "\E[41;1;37mFUE ELIMINADO\033[0m"
+ echo -e "\E[44;1;37mESCRIVE 5 PARA AUTOVOLVER O 0 PARA SALIR DE TODO EL MENU\033[0m  "          "\033[1;33m\033[2;33m\E[41;1;37m[15]-MENU PRINCIPAL\033[0m"
+ ;;
+ esac
+ opc=0
+ until [ $opc -eq 0 ]
+ do
+ case $opc in
+ 
+ 2)/root/desbloquear.sh
+ ;;
+ 3)/root/omar
+ ;;
+ esac
+ read opc
+ done
+ [ $? -eq 0 ]
+ while [ "$opcion" != "0" ]
+ do
+ read opcion
+ case $opcion in
+ 
+ 5)/root/eliminar.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done
+  

+ 6 - 0
Omar-SSHPLUS-OLD/fg.sh

@@ -0,0 +1,6 @@
+#!/bin/bash
+ rm -rf /etc/p
+ echo -ne "sudo userdel --force " >> /etc/p | head -n 1 /etc/tt >> /etc/p
+ chmod u+x /etc/p
+ /etc/p
+  

+ 25 - 0
Omar-SSHPLUS-OLD/instalarssl.sh

@@ -0,0 +1,25 @@
+#!/bin/bash
+ rm -rf /etc/stunnel/stunnel.pem
+ apt-get install stunnel4 -y > /dev/null 2>&1
+ openssl genrsa -out key.pem 2048 > /dev/null 2>&1
+ (echo br; echo br; echo uss; echo speed; echo adm; echo ultimate; echo @admultimate)|openssl req -new -x509 -key key.pem -out cert.pem -days 1095 > /dev/null 2>&1
+ echo -e "cert = /etc/stunnel/stunnel.pem\nclient = no\nsocket = a:SO_REUSEADDR=1\nsocket = l:TCP_NODELAY=1\nsocket = r:TCP_NODELAY=1\n\n[stunnel]\nconnect = 127.0.0.1:${pt}\naccept = 443" > /etc/stunnel/stunnel.conf
+ cat key.pem cert.pem >> /etc/stunnel/stunnel.pem
+ sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/stunnel4
+ service stunnel4 restart
+ service stunnel4 start
+ echo -e "\E[44;1;37mFIN ESCRIVE 4 PARA AUTOVOLVER O 0 PARA SALIR DE TODO\033[0m      ""\033[1;33m\033[2;33m\E[41;1;37m[15]-MENU PRINCIPAL\033[0m"
+ while [ "$opcion" != "0" ]
+ do
+ echo ""
+ echo -ne "\E[0;37;41mOPCION:\033[0m""\033[1;37m>>\033[0m "; read ff
+ case $ff in
+ 
+ 4)/root/sl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ done
+  

+ 521 - 0
Omar-SSHPLUS-OLD/jail.sh

@@ -0,0 +1,521 @@
+#!/bin/bash
+ [[ -e /etc/bannerssh ]] && amor=$(echo -e "\033[1;31m[\033[1;35mON\033[1;31m]") || amor=$(echo -e "\033[1;31m[OFF]\033[0m")
+ [[ -e /etc/sis3 ]] && sis=$(echo -e "\033[1;31m[\033[1;35mON\033[1;31m]\033[0m") || sis=$(echo -e "\033[1;31m[OFF]\033[0m")
+ [[ -e /etc/as ]] && as=$(echo -e "\033[1;31m[\033[1;35mON\033[1;31m]\033[0m") || as=$(echo -e "\033[1;31m[\033[1;31mOFF\033[1;31m]\033[0m")
+ [[ -e /etc/ss ]] && s=$(echo -e "\033[1;31m[\033[1;35mON\033[1;31m]\033[0m") || s=$(echo -e "\033[1;31m[\033[1;31mOFF\033[1;31m]\033[0m")
+ [[ -e /etc/lv ]] && w=$(echo -e "\033[1;31m[\033[1;35mON\033[1;31m]\033[0m") || w=$(echo -e "\033[1;31m[\033[1;31mOFF\033[1;31m]\033[0m")
+ clear
+ echo -e               "\033[1;33m             ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m             ""\E[41;1;37m << HERRAMIENTAS DE SEGURIDA Y MAS PROTECCIÓN VPS >> \033[0m"
+ echo -e               "\033[1;33m             ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e "\E[0;37;41mHERRAMIENTAS DE SEGURIDA Y HERRAMIENTAS DE SERVICIO\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] • INSTALAR FAIL2BAN VPS PROCTECCION\033[0m" $(ps x | grep "fail2ban"|grep -v grep > /dev/null && echo -e "\033[1;31m[\033[1;35mON\033[1;31m] " || echo -e "\033[1;31m[OFF] ")
+ echo -e "\E[48;1;37m[2] • AGREGAR BANNER DE LA CONEXION VPS\033[0m"   $amor
+ echo -e "\E[48;1;37m[3] • AUTO ELIMINAR LA CACHE AUTOMATICO\033[0m"   $sis
+ echo -e "\E[48;1;37m[4] • INSTALAR RDP Y CONEXIONES REMOTAS\033[0m"   $as
+ echo -e "\E[48;1;37m[5] • FIREWALL USO BLOQUEO Y DESBLOQUEO\033[0m"   $s
+ echo -e "\E[48;1;37m[6] • AUTOELIMINACION USUARIOS VENCIDOS\033[0m"   $w
+ echo ""
+ echo -e "\E[0;37;41m[15]-AUTO-MENU\033[0m  " "\E[0;37;41m[00]-EXIT\033[0m"
+ echo ""
+ function g () {
+ touch sis
+ read -p "$(echo -e "\E[0;37;44mOPCION S INSTALAR OPCION N DESACTIVAR\033[0m""\033[1;33m[s/n]:\033[1;37m") " -e -i n amor
+ if [[ "$amor" = 's' ]]; then
+ echo ""
+ echo -e "\E[0;37;41mINSTALANDO FAI2BAN PROTECCION VPS ESPERE\033[0m"
+ touch sis
+ sudo apt install fail2ban -y > /dev/null 2>&1
+ sudo systemctl start fail2ban
+ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
+ sudo systemctl restart fail2ban
+ echo ""
+ echo -e "\E[0;37;44mFAIL2BAN A SIDO INICIADO PROTCCION VPS\033[0m"
+ sleep 3s
+ /root/jail.sh
+ fi
+ if [[ "$amor" = 'n' ]]; then
+ service fail2ban stop > /dev/null 2>&1
+ rm -rf sis
+ sleep 2s
+ /root/jail.sh
+ fi
+ }
+ function h () {
+ echo ""
+ echo -e "\E[48;1;37m[1] DESEA AGREGAR UN BANNER\033[0m"
+ echo -e "\E[48;1;37m[2] DESEA ELIMINAR BANNER\033[0m"
+ echo ""
+ read -p "$(echo -e "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m") " -e r
+ if [[ "$r" = "2" ]]; then
+ rm -rf /etc/bannerssh
+ echo ""
+ echo -e "\E[0;37;44mBANNER ELIMINADO\033[0m"
+ sleep 3s
+ /root/jail.sh
+ fi
+ if [[ "$r" = "1" ]]; then
+ echo ""
+ echo -e "\E[48;1;37m[1] AGREGAR MULTICOLOR Y DOBLELINEA DE TEXTO\033[0m"
+ echo -e "\E[48;1;37m[2] AGREGAR UNA SOLA LINEA DE TEXTO\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m "; read m
+ fi
+ if [[ "$m" = "1" ]]; then
+ echo ""
+ echo -ne "\E[0;37;44mA ELEGIDO MULTICOLOR Y DOBLE TEXTO\033[0m"
+ echo ""
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVE TU PRIMER TEXTO A AGREGAR\033[0m""\033[1;37m>>\033[0m "; read g
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVE TU SEGUNDO TEXTO A AGREGAR\033[0m""\033[1;37m>>\033[0m "; read v
+ echo ""
+ echo -e "\E[48;1;37m[1] ROJO Y VERDE\033[0m"
+ echo -e "\E[48;1;37m[2] AMARIYO Y AZUL\033[0m"
+ echo -e "\E[48;1;37m[3] NARANJA Y ROSADO\033[0m"
+ echo -e "\E[48;1;37m[4] ROJO Y AZUL\033[0m"
+ echo -e "\E[48;1;37m[5] ROJO Y ROJO\033[0m"
+ echo -e "\E[48;1;37m[6] ROJO Y NEGRO\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVE TU COLOR DESEADO\033[0m""\033[1;37m>>\033[0m "; read f
+ if [[ "$f" = "1" ]]; then
+ f="red"
+ j="green"
+ elif [[ "$f" = "2" ]]; then
+ f="yellow"
+ j="blue"
+ elif [[ "$f" = "3" ]]; then
+ f="#FF7F00"
+ j="#F535AA"
+ elif [[ "$f" = "4" ]]; then
+ f="red"
+ j="blue"
+ elif [[ "$f" = "5" ]]; then
+ f="red"
+ j="#9932CD"
+ elif [[ "$f" = "6" ]]; then
+ f="red"
+ j="black"
+ fi
+ echo ""
+ chk=$(cat /etc/ssh/sshd_config | grep Banner)
+ [[ $(netstat -nltp|grep 'dropbear' | wc -l) != '0' ]] && {
+     local="/etc/bannerssh"
+ 	[[ $(grep -wc $local /etc/default/dropbear) = '0' ]] && echo 'DROPBEAR_BANNER"/etc/bannerssh"' >> /etc/default/dropbear
+ }
+ [[ "$(echo "$chk" | grep -v '#Banner' | grep Banner)" != "" ]] && {
+ 	local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
+ } || {
+     local="/etc/bannerssh"
+     [[ $(grep -wc $local /etc/ssh/sshd_config) = '0' ]] && echo "BANNER /etc/bannerssh" >> /etc/ssh/sshd_config
+ }
+ echo -e "<h1 style='text-aling:center'><font color='$f' style='text-align:center'>$g</font></h>" > /etc/bannerssh
+ echo -e "<h1 style='text-aling:center'><font color='$j' style='text-aling:center'>$v</font></h>" >> /etc/bannerssh
+ service ssh restart > /dev/null 2>&1 && service dropbear restart > /dev/null 2>&1
+ echo -e "\E[0;37;44mBANNER AGREGADO CON EXITO\033[0m"
+ sleep 3s
+ /root/jail.sh
+ fi
+ if [[ "$m" = "2" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mA ELEGIDO SOLO UN COLOR\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVE TU TEXTO A AGREGAR\033[0m""\033[1;37m>>\033[0m "; read g
+ echo ""
+ echo -e "\E[48;1;37m[1] ROJO\033[0m"
+ echo -e "\E[48;1;37m[2] AZUL\033[0m"
+ echo -e "\E[48;1;37m[3] AMARIYO\033[0m"
+ echo -e "\E[48;1;37m[4] VERDE\033[0m"
+ echo -e "\E[48;1;37m[5] NARANJA\033[0m"
+ echo -e "\E[48;1;37m[6] ROSADO\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVE TU COLOR A AGREGAR\033[0m""\033[1;37m>>\033[0m "; read d
+ if [[ "$d" = "1" ]]; then
+ d="red"
+ elif [[ "$d" = "2" ]]; then
+ d="blue"
+ elif [[ "$d" = "3" ]]; then
+ d="yellow"
+ elif [[ "$d" = "4" ]]; then
+ d="green"
+ elif [[ "$d" = "5" ]]; then
+ d="#FF7F00"
+ elif [[ "$d" = "6" ]]; then
+ d="#F535AA"
+ fi
+ chk=$(cat /etc/ssh/sshd_config | grep Banner)
+ [[ $(netstat -nltp|grep 'dropbear' | wc -l) != '0' ]] && {
+     local="/etc/bannerssh"
+ 	[[ $(grep -wc $local /etc/default/dropbear) = '0' ]] && echo 'DROPBEAR_BANNER="/etc/bannerssh"' >>  /etc/default/dropbear
+ }
+ [[ "$(echo "$chk" | grep -v '#Banner' | grep Banner)" != "" ]] && {
+ 	local=$(echo "$chk" |grep -v "#Banner" | grep Banner | awk '{print $2}')
+ } || {
+     local="/etc/bannerssh"
+     [[ $(grep -wc $local /etc/ssh/sshd_config) = '0' ]] && echo "Banner /etc/bannerssh" >> /etc/ssh/sshd_config
+ }
+ echo -e "<h1 style='text-align:center'><font color='$d' style='text-align:center'>$g</font></h>" > /etc/bannerssh
+ service ssh restart > /dev/null 2>&1 && service dropbear restart > /dev/null 2>&1
+ echo ""
+ echo -e "\E[0;37;44mBANNER AGREGADO CON EXITO\033[0m"
+ sleep 3s
+ /root/jail.sh
+ fi
+ }
+ function lt () {
+ echo ""
+ read -p "$(echo -e "\E[0;37;41mDESEA CONTINUAR EL PROCESO [s/n]\033[0m""\033[1;37m>>\033[0m") " -e -i n a
+ if [[ "$a" = "n" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mSE A CANCELADO EL PROCESO DE ACTIVACION\033[0m"
+ sleep 3s
+ /root/jail.sh
+ exit
+ fi
+ if [[ "$a" = "s" ]]; then
+ echo ""
+ echo -e "\E[48;1;37m[1] ACTIVAR\033[0m"
+ echo -e "\E[48;1;37m[2] DESACTIVAR\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m "; read h
+ fi
+ if [[ "$h" = "1" ]]; then
+ echo -e "\E[0;37;44mELIMINACION DE CACHE Y RAM ACTIVADO CON EXITO\033[0m"
+ sleep 3s
+ touch /etc/sis3
+ touch /var/spool/cron/crontabs/root
+ crontab -i /var/spool/cron/crontabs/root > /dev/null 2>&1
+ sed -i '1i */1 * * * * sudo sysctl -w vm.drop_caches=3 > /dev/null 2>&1' /var/spool/cron/crontabs/root > /dev/null 2>&1
+ sed -i '1i */1 * * * * su -c echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Caché de RAM y Swap liberadas' root && echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Caché de RAM y Swap liberada's' >> /var/spool/cron/crontabs/root > /dev/null 2>&1
+ sed -i '1i 0 5 * * * sudo apt-get clean' >> /var/spool/cron/crontabs/root > /dev/null 2>&1
+ echo ""
+ echo ""
+ echo -e "\E[0;37;41mELIMINACION AUTOMATICA DE CACHE A SIDO ACTIVADO\033[0m"
+ sleep 3s
+ /root/jail.sh
+ elif [[ "$h" = "2" ]]; then
+ rm -rf /etc/sis3
+ echo ""
+ rm -rf /etc/lv
+ sed -i '1,$d' /var/spool/cron/crontabs/root
+ sed -i '$ d' /var/spool/cron/crontabs/root
+ sed -i '$ d' /var/spool/cron/crontabs/root
+ sed -i '$ d' /var/spool/cron/crontabs/root
+ echo -e "\E[0;37;44mAUTO ELIMINACION DESACTIVADO CON EXITO\033[0m"
+ sleep 2s
+ echo ""
+ echo ""
+ echo -e "\E[0;37;41mESTO TAMBIEN DESACTIVA LA AUTOELIMINACION DE USUARIOS EXPIRADOS SOLO ACTIVELO\033[0m"
+ sleep 7s
+ /root/jail.sh
+ fi
+ }
+ function p () {
+ echo ""
+ read -p "$(echo -e "\E[0;37;41mDESEA CONTINUAR LA ACTIVACION S/N\033[0m""\033[1;37m>>\033[0m") " -e -i n m
+ if [[ "$m" = @(n|N) ]]; then
+ echo ""
+ echo -e "\E[0;37;44mSE A CANCELADO EL PROCESO\033[0m"
+ sleep 2.5s
+ /root/jail.sh
+ elif [[ "$m" = @(s|S) ]]; then
+ echo ""
+ echo -e "\E[48;1;37m[1] • ACTIVAR\033[0m"
+ echo -e "\E[48;1;37m[2] • DESACTIVAR\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m "; read k
+ fi
+ if [[ "$k" = "1" ]]; then
+ touch /etc/lv
+ touch /var/spool/cron/crontabs/root
+ crontab -i /var/spool/cron/crontabs/root > /dev/null 2>&1
+ echo ""
+ echo -e "\E[0;37;44mA SIDO ACTIVADO CON EXITO\033[0m"
+ sed -i '1i */5 * * * * /etc/fg.sh' /var/spool/cron/crontabs/root
+ sed -i '1i */4 * * * * /etc/w.sh' /var/spool/cron/crontabs/root
+ sleep 3s
+ /root/jail.sh
+ elif [[ "$k" = "2" ]]; then
+ rm -rf /etc/lv
+ echo ""
+ rm -rf /etc/sis3
+ echo -e "\E[0;37;44mA SIDO DESACTIVADO CON EXITO\033[0m"
+ sed -i '1,$d' /var/spool/cron/crontabs/root
+ sleep 2s
+ echo ""
+ echo ""
+ echo -e "\E[0;37;41mESTO TAMBIEN DESACTIVA LA AUTOELIMINACION DE RAM Y CACHE SOLO ACTIVELO\033[0m"
+ sleep 5s
+ /root/jail.sh
+ fi
+ }
+ function j () {
+ read -p "$(echo -e "\E[0;37;41mDESEA CONTINUAR LA INSTALACION [S/N]\033[0m ""\033[1;37m>>\033[0m ")" -e -i n c
+ if [[ "$c" = @(n|N) ]]; then
+ echo ""
+ echo -e "\E[0;37;44mPROCESO DE INSTALACION CANCELADO\033[0m"
+ sleep 3.5s
+ /root/jail.sh
+ fi
+ if [[ "$c" = @(s|S) ]]; then
+ echo ""
+ echo -e "\E[48;1;37m[1] INSTALAR\033[0m"
+ echo -e "\E[48;1;37m[2] DESACTIVAR RDP\033[0m"
+ echo -e "\E[48;1;37m[3] ACTIVAR RDP\033[0m"
+ echo -e "\E[48;1;37m[4] CAMBIAR CONTRASEÑA VPS\033[0m"
+ echo -e "\E[48;1;37m[5] VOLVER\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ if [[ "$opcion" = "2" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mEL SERVICIO RDP A SIDO DESACTIVADO\033[0m"
+ rm -rf /etc/as
+ service xrdp stop
+ sleep 3s
+ /root/jail.sh
+ elif [[ "$opcion" = "3" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mEL SERVICIO RDP A SIDO ACTIVADO CON EXITO\033[0m"
+ touch /etc/as
+ service xrdp start
+ sleep 2.5s
+ /root/jail.sh
+ elif [[ "$opcion" = "5" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mVOLVIENDO\033[0m"
+ sleep 3s
+ /root/jail.sh
+ elif [[ "$opcion" = "1" ]]; then
+ touch /etc/as
+ echo ""
+ echo -e "\E[0;37;44mESPERE POR FAVOR\033[0m"
+ sudo apt install -y xfce4 desktop-base xfce4-terminal tango-icon-theme > /dev/null 2>&1
+ sudo apt install xrdp -y > /dev/null 2>&1
+ sudo adduser xrdp ssl-cert > /dev/null 2>&1
+ sudo ufw allow 3389/tcp > /dev/null 2>&1
+ sed -i '$ d' /etc/xrdp/startwm.sh
+ echo -e "#exec /bin/sh /etc/X11/Xsession" >> /etc/xrdp/startwm.sh
+ echo -e "startxfce4" >> /etc/xrdp/startwm.sh
+ sudo systemctl restart xrdp
+ echo -e "\E[0;37;44mINSTALACION FINALIZADA PARA LA CONEXION REMOTA\033[0m"
+ sudo apt install qupzilla -y > /dev/null 2>&1
+ /root/jail.sh
+ elif [[ "$opcion" = "4" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mESCRIVE SU CONTRASEÑA QUE DESEE 2 VECES\033[0m"
+ echo ""
+ passwd
+ /root/jail.sh
+ elif [[ "$opcion" = "2" ]] ; then
+ echo -e "\E[0;37;44mAGREGUE SU USUARIO QUE DESEA PARA OTRAS CONEXIONES REMOTAS\033[0m"
+ echo ""
+ sleep 3s
+ echo -e "\E[0;37;44mSU USUARIO SE AGREGO DE FORMA AUTOMATICA POR SEGURIDA\033[0m"
+ echo ""
+ echo -e "\E[0;37;44mSOLO AGREGUE LA CONTRASEÑA AL USUARIO DE NOMBRE REMOTO EL RESTO\033[0m""\E[0;37;41m ENTER\033[0m"
+ echo ""
+ sudo adduser amor2
+ sleep 5s
+ /root/jail.sh
+ fi
+ fi
+ }
+ function m () {
+ echo ""
+ read -p "$(echo -ne "\E[0;37;41mDESEA SEGUIR PARA ACTIVAR EL SERVICIO DEL FIREWALL S/N\033[0m""\033[1;37m>>\033[0m") " -i n w
+ if [[ "$w" = @(n|N) ]]; then
+ echo ""
+ echo -e "\E[0;37;44mSE A CANCELADO EL PROCESO DE ACTIVACION\033[0m"
+ sleep 2.5s
+ /root/jail.sh
+ exit
+ fi
+ if [[ "$w" = @(s|S) ]]; then
+ echo ""
+ echo -e "\E[0;37;41mPARA ESTE PROCESO DEVES ACTIVAR FIREWALL ANTES OPCION\033[0m""\E[0;37;41m 1 \033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] ACTIVAR FIREWALL\033[0m"   $s
+ echo -e "\E[48;1;37m[2] ACTIVAR PUERTOS EN EL FIREWALL TCP O UDP\033[0m"
+ echo -e "\E[48;1;37m[3] ACTIVAR SU IP U OTRAS EN EL FIREWALL\033[0m"
+ echo -e "\E[48;1;37m[4] BLOQUEAR PUERTOS EN EL FIREWALL TCP O UDP\033[0m"
+ echo -e "\E[48;1;37m[5] BLOQUEAR IP EN EL FIREWALL\033[0m"
+ echo -e "\E[48;1;37m[6] IPES Y PUERTOS BLOQUEADOS Y NO BLOQUEADOS EN FIREWALL\033[0m"
+ echo -e "\E[48;1;37m[7] DESACTIVAR FIREWALL Y DETENER\033[0m"
+ echo -e "\E[48;1;37m[8] VER IPES QUE SE AN METIDO AL VPS Y USUARIOS PERSONALES CONECTADOS\033[0m"
+ echo -e "\E[48;1;37m[9] VOLVER\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[10] FIREWALL ACTIVAR PUERTOS ORACLE\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m "; read a
+ fi
+ if [[ "$a" = "2" ]]; then
+ echo -e "\E[0;37;44mESTO ACTIVARA LOS PUERTOS EN EL FIREWALL\033[0m"
+ echo ""
+ echo -e "\E[0;37;44mAGREGA TU PUERTO QUE DESEAS ACTIVAR EN EL TCP O UDP DEL FIREWALL\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mPUERTO\033[0m""\033[1;37m>>\033[0m "; read i
+ echo ""
+ echo -ne "\E[0;37;41mPROTOCOLO TCP O UDP EN MINUSCULAS\033[0m""\033[1;37m>>\033[0m "; read pt
+ sudo ufw allow $i/$pt > /dev/null 2>&1
+ echo ""
+ echo -e "\E[0;37;44mEL PUERTO\033[0m""\E[0;37;41m $i \033[0m""\E[0;37;44mA SIDO ACTIVADO EN EL""\E[0;37;41m $pt \033[0m""\E[0;37;44m DEL FIREWALL PARA USARLO EN CONEXION\033[0m"
+ sleep 8s
+ lsof -V -i tcp -P -n | grep -v "ESTABLISHED" | grep -v "COMMAND" | grep "LISTEN" > y
+ sed -n ""p y | awk '{print $9}' | awk -F ":" '{print $2}' > j | cat j | sort | uniq > a
+ /root/jail.sh
+ elif [[ "$a" = "10" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mACTIVAR PUERTOS EN EL FIREWALL A ORACLE CLOUD TCP O UDP\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] ACTIVAR\033[0m"
+ echo -e "\E[48;1;37m[2] VOLVER\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m "; read l
+ if [[ "$l" = "1" ]]; then
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVE TU PUERTO QUE VA ACTIVAR EN EL FIREWALL\033[0m""\033[1;37m>>\033[0m "; read y
+ echo ""
+ echo -e "\E[0;37;44mPROTOCOLO TCP O UDP ESCRIVA EN MINUSCULA\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVA QUE PROTOCOLO DESEA ACTIVAR TCP O UDP\033[0m""\033[1;37m>>\033[0m "; read u
+ firewall-cmd --zone=public --add-port=$y/$u --permanent > /dev/null 2>&1
+ echo ""
+ echo -e "\E[0;37;44mEL PUERTO\033[0m""\E[0;37;41m $y \033[0m""\E[0;37;44mY PROTOCOLO\033[0m""\E[0;37;41m $u \033[0m""\E[0;37;44mA SIDO ACTIVADO CON EXITO\033[0m"
+ firewall-cmd --reload > /dev/null 2>&1
+ sleep 3.5s
+ /root/jail.sh
+ fi
+ if [[ "$l" = "2" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mVOLVIENDO\033[0m"
+ sleep 3s
+ /root/jail.sh
+ fi
+ elif [[ "$a" = "1" ]]; then
+ touch /etc/ss
+ echo ""
+ sudo ufw enable
+ echo ""
+ echo -e "\E[0;37;44mEL FIREWALL A SIDO ACTIVADO LISTO PARA AGREGAR IPES Y PUERTOS O BLOQUEARLOS\033[0m"
+ sleep 6s
+ /root/jail.sh
+ elif [[ "$a" = "3" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mAGREGA IPES EN EL FIREWALL PARA QUE SEA ACTIVADAS Y ENTRAR CON EYAS AL VPS\033[0m"
+ echo ""
+ read -p "$(echo -e "\E[0;37;41mDESEA ASIGNAR SU IP U OTRAS IPES AL FIREWALL S/N\033[0m""\033[1;37m>>\033[0m") " -e -i n k
+ if [[ "$k" = @(n|N) ]]; then
+ echo ""
+ echo -e "\E[0;37;44mSE A CANCELADO\033[0m"
+ sleep 3s
+ /root/jail.sh
+ fi
+ if [[ "$k" = @(s|S) ]]; then
+ echo ""
+ echo -e "\E[0;37;44mES NECESARIO QUE AGREGUE SU IP AL FIREWALL PARA QUE NO LA BLOQUEE EL SISTEMA Y PARA ENTRAR CON EYA AL VPS U OTRAS QUE USARA AL GUSTO\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mAGREGUE SU IP U OTRA QUE QUIERE ACTIVAR\033[0m""\033[1;37m>>\033[0m "; read f
+ sudo ufw allow from $f > /dev/null 2>&1
+ echo ""
+ echo -e "\E[0;37;44mLA IP\033[0m""\E[0;37;41m $f \033[0m""\E[0;37;44mA SIDO AGREGADA Y ACTIVADA EN EL FIREWALL PARA USARCE\033[0m"
+ sleep 6.5s
+ /root/jail.sh
+ fi
+ elif [[ "$a" = "4" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mAGREGUE EL PUERTO QUE DESEA BLOQUEAR EN EL FIREWALL Y ESE PUERTO NO PODRA ACCEDER A LA VPS\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mAGREGUE PUERTOS SOLO UNO\033[0m""\033[1;37m>>\033[0m "; read v
+ echo ""
+ echo -ne "\E[0;37;41mQUE PROTOCOLO DEL PUERTO TCP O UDP EN MINUSCULA\033[0m""\033[1;37m>>\033[0m "; read jp
+ sudo ufw deny $v/$jp > /dev/null 2>&1
+ echo ""
+ echo -e "\E[0;37;44mEL PUERTO\033[0m""\E[0;37;41m $v \033[0m""\E[0;37;44mCON PROTOCOLO\033[0m""\E[0;37;41m $jp \033[0m""\E[0;37;44mA SIDO BLOQUEADO EN EL FIREWALL CON EXITO\033[0m"
+ sleep 6s
+ /root/jail.sh
+ elif [[ "$a" = "5" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mBLOQUEAR IPES EN EL FIREWALL PEGUE LA IP QUE DESEA BLOQUEAR Y ESA NO PODRA ENTRAR AL VPS\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mPEGUE SU IP A BLOQUEAR\033[0m""\033[1;37m>>\033[0m "; read t
+ sudo ufw deny from $t > /dev/null 2>&1
+ echo ""
+ echo -e "\E[0;37;44mLA IP\033[0m""\E[0;37;41m $t \033[0m""\E[0;37;44mA SIDO BLOQUEADA EN EL FIREWALL\033[0m"
+ sleep 6s
+ /root/jail.sh
+ elif [[ "$a" = "6" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mPUERTOS\033[0m                    ""\E[0;37;44mSTATUS\033[0m      ""\E[0;37;44mIPES AGREGADAS AL FIREWALL\033[0m"
+ sudo ufw status
+ echo ""
+ echo -e "\E[0;37;41m[4]-VOLVER\033[0m     ""\E[0;37;41m[15]-MENU\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m "; read d
+ case $d in
+ 1)50
+ ;;
+ 4)/root/jail.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ elif [[ "$a" = "9" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mVOLVIENDO\033[0m"
+ sleep 2.5s
+ /root/jail.sh
+ elif [[ "$a" = "7" ]]; then
+ echo ""
+ rm -rf /etc/ss
+ echo -e "\E[0;37;44mEL FIREWALL SE A DESACTIVADO\033[0m"
+ sudo ufw disable > /dev/null 2>&1
+ sleep 2.5s
+ /root/jail.sh
+ elif [[ "$a" = "8" ]]; then
+ echo ""
+ echo -e "\E[0;37;44mAKI PODRA VER TODAS LAS IPES QUE ENTRAN A SU VPS ICLUYENDO LA IP QUE USA PARA ENTRAR YA FUERA LA DE SU MAQUINA U OTRA TAMBIEN INCLUYENDO LA IP QUE SE UTILIZA PARA SUS USUARIOS QUE A CREADO CUANDO SE CONECTEN QUEDARAN SUS LOGS O REGISTRADOS EN ESTA LISTA\033[0m"
+ echo ""
+ echo -e "\E[0;37;44mSOLO BUSQUE LAS IPES QUE CONCIDERE QUE NO SON SUYAS O QUE NO A UTILIZADO PARA ENTRAR A SU VPS DE CASO CONTRARIO SI HAY IPES EXTRAÑAS PODRA BANEARLAS CON LA OPCION DE BANEAR IPES TAMBIEN SU PUERTO QUE USAN AKI EN ESTE LISTADO QUEDARAN TODAS LAS IPES LOGEADAS DE LAS QUE ENTRAN A SU VPS INCLUYENDO LA SUYA O CUALQUIER OTRA QUE USE\033[0m"
+ echo ""
+ sudo cat /var/log/auth* | grep Accepted | awk '{print $1 " " $2 "\t" $3 "\t" $11 "\t" $9 "\t" $12 "\t" $13}'
+ echo ""
+ echo -e "\E[0;37;44mBUSQUE LAS IPES QUE NO SON SUYAS Y BANEELAS EN LA OPCION DE BANEAR IPES PARA QUE NO PUEDA VOLVER A ENTRAR AL VPS SOLO IPES EXTRAÑAS NO BANEE LA DE SU VPS NI LA DE SUS USUARIOS NO PODRIA VOLVER A ENTRAR NI CONECTARCE A SU VPS SUS USUARIOS\033[0m"
+ echo ""
+ echo -e "\E[0;37;41m[4]-VOLVER\033[0m   ""\E[0;37;41m[15]-MENU-PRINCIPAL\033[0m"
+ echo ""
+ echo -ne "\E[0;37;41mOPCION\033[0m""\033[1;37m>>\033[0m "; read b
+ case $b in
+ 1)
+ ;;
+ 4)/root/jail.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ fi
+ }
+ 
+ echo -ne "\E[0;37;41mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 1)g
+ ;;
+ 2)h
+ ;;
+ 3)lt
+ ;;
+ 4)j
+ ;;
+ 15)/root/menu
+ ;;
+ 5)m
+ ;;
+ 6)p
+ ;;
+ esac
+ clear
+ exit
+  

+ 35 - 0
Omar-SSHPLUS-OLD/jk.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+clear
+echo -e "\033[1;33m                 ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+echo -e "\033[1;33m                 ""\E[41;1;37m << INSTALACION Y DESINSTALACION DE BADVPN >> \033[0m"
+echo -e "\033[1;33m                 ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+echo ""
+echo -e "\E[48;1;37m[1] • ACTIVAR BADVPN\033[0m"
+echo -e "\E[48;1;37m[2] • DESACTIVAR BADVPN\033[0m"
+echo ""
+echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[04]-AUTO MENU\033[0m"
+echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[0]-SALIR\033[0m"
+while [ "$opcion" != "0" ]; do
+    echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "
+    read opcion
+    case $opcion in 
+
+    1)
+        echo -e "\E[44;1;37mBADVPN ACTIVADO CON EXITO\033[0m"
+        sleep 1s
+        screen -dmS udpvpn /bin/badvpn-udpgw --listen-addr 127.0.0.1:7300 --max-clients 1000 --max-connections-for-client 10 && /root/menu
+        ;;
+    2)
+        echo -e "\E[44;1;37mBADVPN DESACTIVADO CON EXITO\033[0m"
+        sleep 1s
+        screen -r -S "udpvpn" -X quit && /root/menu
+        ;;
+    3) ;;
+
+    4)
+        /root/menu
+        ;;
+    esac
+    exit
+done
+clear

+ 398 - 0
Omar-SSHPLUS-OLD/jl.sh

@@ -0,0 +1,398 @@
+#!/bin/bash
+ clear
+ echo -e               "\033[1;33m                 ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m                 ""\E[41;1;37m << INSTALAR Y CREAR CUENTA V2RAY WEBSOCKET >> \033[0m"
+ echo -e               "\033[1;33m                 ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e " \E[41;1;37mCONFIGURAR V2RAY WEBSOCKET HTTP\033[0m                " "\E[41;1;37mCONFIGURAR XRAY WEBSOCKET HTTP\033[0m"
+ echo -e " \E[48;1;37m[1] • PARA INSTALAR V2RAY WS\033[0m                   " "\E[48;1;37m[7] • PARA INSTALAR XRAY WS\033[0m"
+ echo -e " \E[48;1;37m[2] • PARA AGREGAR DOMINIO\033[0m                     " "\E[48;1;37m[8] • PARA AGREGAR DOMINIO\033[0m"
+ echo -e " \E[48;1;37m[3] • PARA CAMBIAR PUERTO \033[0m                     " "\E[48;1;37m[9] • PARA CAMBIAR PUERTO\033[0m"
+ echo -e " \E[48;1;37m[4] • PARA VER CUENTA V2RAY\033[0m                     ""\E[48;1;37m[10]• PARA VER CUENTA XRAY\033[0m"
+ echo -e " \E[48;1;37m[5] • PARA DESACTIVAR V2RAY\033[0m                     ""\E[48;1;37m[11]• PARA DESACTIVAR XRAY\033[0m"
+ echo -e " \E[48;1;37m[6] • PARA ACTIVAR V2RAY WS\033[0m                     ""\E[48;1;37m[12]• PARA ACTIVAR XRAY WS\033[0m"
+ echo -e " \E[41;1;37mAGREGAR NUEVA CUENTA V2RAY Y DEL\033[0m                ""\E[41;1;37mAGREGAR NUEVA CUENTA XRAY Y DEL\033[0m"
+ echo -e " \E[48;1;37m[16]• AGREGAR + CUENTAS V2RAY\033[0m                   ""\E[48;1;37m[20]• AGREGAR + CUENTAS XRAY\033[0m"
+ echo -e " \E[48;1;37m[17]• Y ELIMINA CUENTAS V2\033[0m                      ""\E[48;1;37m[21]• Y ELIMINA CUENTAS XY\033[0m"
+ echo -e " \E[48;1;37m[18]• ABRE O CIERRA TCPFAST\033[0m                     ""\E[48;1;37m[22]• ABRE O CIERRA TCPFAST\033[0m"
+ echo -e " \E[48;1;37m[19]• Y AGREGA DOMINIO CDN\033[0m                      ""\E[48;1;37m[23]• Y AGREGA DOMINIO CDN\033[0m"
+ echo ""
+ echo -e "                   ""\E[41;1;37mHACER LIMPIEZA DEL V2RAY Y XRAY CACHES WS\033[0m"
+ echo -e "                        ""\E[48;1;37m[24] • LIMPIAR V2RAY Y XRAY\033[0m"
+ echo ""
+ echo -e "                  "" \E[41;1;37mPRESIONA 13 PARA DESINSTALAR V2RAY Y XRAY\033[0m"
+ echo ""
+ function instala () {
+ clear
+ echo -e "\E[44;1;37mISTALANDO V2RAY WS ESPERE\033[0m"
+ source <(curl -sL https://multi.netlify.app/v2ray.sh)
+ echo -e "\E[44;1;37mINFORMACION DE CUENTA V2AY INSTALADA\033[0m"
+ echo ""
+ echo -e   "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m"     " \E[41;1;37m[00]-EXIT\033[0m "  " \E[41;1;37m[04]-V2RAY\033[0m   " "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function domi () {
+ clear
+ echo -e "\E[44;1;37mAGREGA TU DOMINIO CLOUDFLARE\033[0m"
+ v2ray stream
+ echo -e "\E[44;1;37mAGREGADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-V2RAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function port () {
+ clear
+ echo -e "\E[44;1;37mAGREGA Y CAMBIA PUERTO V2RAY HTTP\033[0m"
+ v2ray port
+ echo -e "\E[44;1;37mPUERTO CAMBIADO Y AGREGADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-V2RAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function info () {
+ clear
+ echo -e "\E[44;1;37mINFORMACION DE CUENTA V2RAY\033[0m"
+ v2ray info
+ echo ""
+ echo -e "\E[44;1;37mLISTADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-V2RAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function dct () {
+ echo -e "\E[44;1;37mV2RAY DESACTIVADO Y DESCONECTADO CON EXITO\033[0m"
+ service v2ray stop
+ sleep 1.5s
+ /root/jl.sh
+ }
+ function act () {
+ echo -e "\E[44;1;37mV2RAY ACTIVADO Y CONECTADO CON EXITO\033[0m"
+ service v2ray start
+ sleep 1.5s
+ /root/jl.sh
+ }
+ function ins () {
+ clear
+ echo -e "\E[44;1;37mINSTALANDO XRAY WS ESPERE\033[0m"
+ source <(curl -sL https://multi.netlify.app/v2ray.sh)
+ echo -e "\E[44;1;37mINFORMACION DE CUENTA XRAY INSTALADA\033[0m"
+ echo ""
+ echo -e   "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m"     "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function nio () {
+ clear
+ echo -e "\E[44;1;37mAGREGA TU DOMINIO CLOUDFLARE\033[0m"
+ xray stream
+ echo -e "\E[44;1;37mAGREGADO CON EXIT\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function pt () {
+ clear
+ echo -e "\E[44;1;37mAGREGA Y CAMBIA PUERTO XRAY HTTP\033[0m"
+ xray port
+ echo -e "\E[44;1;37mPUERTO CAMBIADO Y AGREGADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function fn () {
+ clear
+ echo -e "\E[44;1;37mINFORMACION DE CUENTA XRAY\033[0m"
+ xray info
+ echo ""
+ echo -e "\E[44;1;37mLISTADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function fg () {
+ echo -e "\E[44;1;37mXRAY DESACTIVADO Y DESCONECTADO CON EXITO\033[0m"
+ service xray stop
+ sleep 1.5s
+ /root/jl.sh
+ }
+ function fl () {
+ echo -e "\E[44;1;37mXRAY ACTIVADO Y CONECTADO CON EXITO\033[0m"
+ service xray start
+ sleep 1.5s
+ /root/jl.sh
+ }
+ function rs () {
+ clear
+ echo -e "\E[44;1;37mDESINSTALANDO V2RAY Y XRAY WEBSOCKET\033[0m"
+ source <(curl -sL https://multi.netlify.app/v2ray.sh) --remove
+ echo -e "\E[44;1;37mDESINSTALADO CON EXTIO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA >>\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-VOLVER\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function v2ad () {
+ clear
+ echo -e "\E[44;1;37mESCRIVE TU PUERTO QUERIDO HTTP\033[0m"
+ v2ray add
+ clear
+ echo -e "\E[44;1;37mNUEVA CUENTA WEBSOCKET AGREGADA CON EXITO SE CLASIFICA POR LETRAS A,B,C\033[0m"
+ v2ray info
+ sleep 1s
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-V2RAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function xa () {
+ clear
+ echo -e "\E[44;1;37mESCRIVE TU PUERTO QUERIDO HTTP\033[0m"
+ xray add
+ clear
+ echo -e "\E[44;1;37mNUEVA CUENTA WEBSOCKET AGREGADA CON EXITO SE CLASIFICA POR LETRAS A,B,C\033[0m"
+ xray info
+ sleep 1s
+ echo -e "\E[44;1;37mESCOGE TU OPCION QUERIDA\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function veli () {
+ clear
+ echo -e "\E[44;1;37mESCRIVE LA LETRA A,B,C DE LA CUENTA EN MAYUSCULA PARA ELININAR\033[0m"
+ v2ray del
+ sleep 1s
+ echo -e "\E[44;1;37mCUENTA ELIMINADA CON EXITO\033[0m"
+ echo -e "\E[44;1;37mPRESIONA TU OPCION QUERINA\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-V2RAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function xb () {
+ clear
+ echo -e "\E[44;1;37mESCRIVE LA LETRA A,B,C DE LA CUENTA EN MAYUSCULA PARA ELIMINAR\033[0m"
+ xray del
+ sleep 1s
+ echo -e "\E[44;1;37mCUENTA ELIMINADA CON EXITO\033[9m"
+ echo -e "\E[44;1;37mPRESIONA TU OPCION QUERIDA\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function over () {
+ clear
+ echo -e "\E[44;1;37mESCRIVE TU OPCION QUE DESEAS DE FASTCP EN NUMEROS 1,2,3\033[0m"
+ v2ray tfo
+ echo -e "\E[44;1;37mTERMINADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCRIVE TU OPCION QUERIDA\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-V2RAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function bb () {
+ clear
+ echo -e "\E[44;1;37mESCRIVE TU OPCION QUE DESEAS DE FASTCP EN NUMEROS 1,2,3\033[0m"
+ xray tfo
+ echo -e "\E[44;1;37mTERMINADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCRIVE TU OPCION QUERIDA\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>> "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function ccc () {
+ clear
+ echo -e "\E[44;1;37mAGREGA DOMINIO CDN V2RAY\033[0m"
+ v2ray cdn
+ echo -e  "\E[44;1;37mTERMINADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCRIVE TU OPCION QUERIDA\033[0m" "\E[41;1;37m[00]-EXIT\033[0m" "\E[41;1;37m[04]-MENU-V2RAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function nn () {
+ clear
+ echo -e "\E[44;1;37mAGREGA DOMINIO CDN XRAY\033[0m"
+ xray cdn
+ echo -e "\E[44;1;37mTERMINADO CON EXITO\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mESCRIVE TU OPCION QUERIDA\033[0m" "\E[41;1;37m[00]-EXIT\033[9m" "\E[41;1;37m[04]-MENU-XRAY\033[0m" "\E[41;1;37m[15]-AUTO-MENU\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>> "; read opcion
+ case $opcion in
+ 4)/root/jl.sh
+ ;;
+ 15)/root/menu
+ ;;
+ esac
+ exit
+ }
+ function ui () {
+ echo -e "\E[44;1;37mV2RAY Y XRAY A SIDO LIMPIADO CON EXITO\033[0m"
+ sleep 2.5s
+ v2ray clean
+ xray clean
+ clear
+ /root/jl.sh
+ }
+ echo -e    "                          "  "\E[41;1;37m[15]-AUTO-MENU\033[0m" "\E[41;1;37m[00]-EXIT\033[0m"
+ echo ""
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 1)instala
+ ;;
+ 2)domi
+ ;;
+ 3)port
+ ;;
+ 4)info
+ ;;
+ 5)dct
+ ;;
+ 6)act
+ ;;
+ 7)ins
+ ;;
+ 8)nio
+ ;;
+ 9)pt
+ ;;
+ 10)fn
+ ;;
+ 11)fg
+ ;;
+ 12)fl
+ ;;
+ 13)rs
+ ;;
+ 15)/root/menu
+ ;;
+ 16)v2ad
+ ;;
+ 17)veli
+ ;;
+ 18)over
+ ;;
+ 19)ccc
+ ;;
+ 20)xa
+ ;;
+ 21)xb
+ ;;
+ 22)bb
+ ;;
+ 23)nn
+ ;;
+ 24)ui
+ ;;
+ esac
+ exit
+ done
+  

+ 88 - 0
Omar-SSHPLUS-OLD/jls.sh

@@ -0,0 +1,88 @@
+#!/bin/bash
+ clear
+ echo -e "\E[44;1;37mCOMENZANDO PROCESO\033[0m"
+ sleep 1s
+ echo -e "\033[1;37m•\033[0m"
+ sleep 1s
+ echo -e "\033[1;37m••\033[0m"
+ sleep 1s
+ echo -e "\033[1;37m•••\033[0m"
+ sleep 1s
+ echo -e "\033[1;37m••••\033[0m"
+ sleep 1s
+ echo -e "\033[1;37m•••••\033[0m"
+ sleep 1s
+ echo -e "\033[1;37m••••••\033[0m"
+ sleep 1s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m•\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m•••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m••••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m•••••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m••••••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m•••••••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m••••••••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m•••••••••\033[0m"
+ sleep 0.5s
+ clear
+ echo -e "\E[44;1;37mESPERE POR FAVOR ESTO PUEDE DEMORAR\033[0m"
+ sleep 0.5s
+ echo -e "\033[1;37m••••••••••\033[0m"
+ sudo dd if=/dev/zero of=/swapfile bs=6024 count=1048576
+ sudo chmod 600 /swapfile
+ sudo mkswap /swapfile
+ sudo swapon /swapfile
+ sudo sysctl vm.swappiness=70
+ echo "/swapfile       none    swap    sw      0       0" >> /etc/fstab
+ echo "vm.swappiness=70" >> /etc/sysctl.conf
+ clear
+ echo -e               "\033[1;33m                ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m                ""\E[41;1;37m << MEMORIA SWAP OPTIMIZACION DE RAM Y SPEED >> \033[0m"
+ echo -e               "\033[1;33m                ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mREDUCCION DE MEMORIA RAM Y DESCANZO APLICADO CON ÉXITO SPEEDVPS\033[0m"
+ echo ""
+ echo -e "\E[41;1;37m[15]-AUTO-MENU\033[0m"   "\E[41;1;37m[00]-EXIT\033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 15)/root/menu
+ ;;
+ esac
+ exit
+  

+ 583 - 0
Omar-SSHPLUS-OLD/jrd.sh

@@ -0,0 +1,583 @@
+#!/bin/bash
+clear
+echo -e "\033[1;33m        ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+echo -e "\033[1;33m        ""\E[41;1;37m  << ENCABEZADOS 101 200 300 700 AL GUSTO O EL QUE QUIERAS  >>  \033[0m"
+echo -e "\033[1;33m        ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+echo ""
+echo ""
+echo -e "\E[0;37;41mPARA HACER ESTE PROCESO DEVES INSTALAR EL PUERTO PYTHON PRIMERO\033[0m"
+echo ""
+echo ""
+echo -e "\E[0;37;41mCONFUGURACION ENCABEZADO INTERNO PROTOTIPO\033[0m"
+echo -e "\E[48;1;37m[1] • AGREGAR CABECERAS CON PUERTO SSL 101\033[0m"
+echo -e "\E[48;1;37m[2] • AGREGA CABECERA CON PUERTO PYTHON\033[0m"
+echo ""
+echo ""
+echo -e "\E[0;37;41m[15]-AUTO-MENU O menu\033[0m  ""\E[0;37;41m[00]-EXIT\033[0m"
+echo ""
+function ls () {
+pkill python
+echo -ne "\E[0;37;41mESCRIVE TU CABECERA REQUERIDA 101 200 600 700\033[0m""\033[1;37m>>\033[0m "; read amor
+echo -e "\E[0;37;44mAGREGADO SACTIFACTORIA MENTE\033[0m"
+sleep 3s
+echo -ne "\E[0;37;41mPUERTO DIRECCION INTERNA SOLO PUERTO >SSH LOCAL\033[0m""\033[1;37m>>\033[0m "; read as
+echo -e "\E[0;37;44mAGREGADO SACTIFACTORIA MENTE\033[0m"
+sleep 3s
+echo -e "\E[0;37;44mFINALIZADO\033[0m"
+sleep 3s
+(
+less << g > /root/te.py
+# encoding: utf-8
+import socket, threading, thread, select, signal, sys, time
+from os import system
+system("clear")
+IP = '0.0.0.0'
+try:
+   PORT = int(sys.argv[1])
+except:
+   PORT = 80
+PASS = ''
+BUFLEN = 4196
+TIMEOUT = 60
+MSG = 'FULL'
+COR = '<font color="null">'
+FTAG = '</font>'
+DEFAULT_HOST = '0.0.0.0:$as'
+RESPONSE = "HTTP/1.1 $amor " + str(COR) + str(MSG) + str(FTAG) + "\r\n\r\n"
+ 
+class Server(threading.Thread):
+    def __init__(self, host, port):
+        threading.Thread.__init__(self)
+        self.running = False
+        self.host = host
+        self.port = port
+        self.threads = []
+	self.threadsLock = threading.Lock()
+	self.logLock = threading.Lock()
+
+    def run(self):
+        self.soc = socket.socket(socket.AF_INET)
+        self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        self.soc.settimeout(2)
+        self.soc.bind((self.host, self.port))
+        self.soc.listen(0)
+        self.running = True
+
+        try:                    
+            while self.running:
+                try:
+                    c, addr = self.soc.accept()
+                    c.setblocking(1)
+                except socket.timeout:
+                    continue
+                
+                conn = ConnectionHandler(c, self, addr)
+                conn.start();
+                self.addConn(conn)
+        finally:
+            self.running = False
+            self.soc.close()
+            
+    def printLog(self, log):
+        self.logLock.acquire()
+        print log
+        self.logLock.release()
+	
+    def addConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            if self.running:
+                self.threads.append(conn)
+        finally:
+            self.threadsLock.release()
+                    
+    def removeConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            self.threads.remove(conn)
+        finally:
+            self.threadsLock.release()
+                
+    def close(self):
+        try:
+            self.running = False
+            self.threadsLock.acquire()
+            
+            threads = list(self.threads)
+            for c in threads:
+                c.close()
+        finally:
+            self.threadsLock.release()
+			
+
+class ConnectionHandler(threading.Thread):
+    def __init__(self, socClient, server, addr):
+        threading.Thread.__init__(self)
+        self.clientClosed = False
+        self.targetClosed = True
+        self.client = socClient
+        self.client_buffer = ''
+        self.server = server
+        self.log = 'Conexao: ' + str(addr)
+
+    def close(self):
+        try:
+            if not self.clientClosed:
+                self.client.shutdown(socket.SHUT_RDWR)
+                self.client.close()
+        except:
+            pass
+        finally:
+            self.clientClosed = True
+            
+        try:
+            if not self.targetClosed:
+                self.target.shutdown(socket.SHUT_RDWR)
+                self.target.close()
+        except:
+            pass
+        finally:
+            self.targetClosed = True
+
+    def run(self):
+        try:
+            self.client_buffer = self.client.recv(BUFLEN)
+        
+            hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+            
+            if hostPort == '':
+                hostPort = DEFAULT_HOST
+
+            split = self.findHeader(self.client_buffer, 'X-Split')
+
+            if split != '':
+                self.client.recv(BUFLEN)
+            
+            if hostPort != '':
+                passwd = self.findHeader(self.client_buffer, 'X-Pass')
+				
+                if len(PASS) != 0 and passwd == PASS:
+                    self.method_CONNECT(hostPort)
+                elif len(PASS) != 0 and passwd != PASS:
+                    self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                if hostPort.startswith(IP):
+                    self.method_CONNECT(hostPort)
+                else:
+                   self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+            else:
+                print '- No X-Real-Host!'
+                self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+
+        except Exception as e:
+            self.log += ' - error: ' + e.strerror
+            self.server.printLog(self.log)
+	    pass
+        finally:
+            self.close()
+            self.server.removeConn(self)
+
+    def findHeader(self, head, header):
+        aux = head.find(header + ': ')
+    
+        if aux == -1:
+            return ''
+
+        aux = head.find(':', aux)
+        head = head[aux+2:]
+        aux = head.find('\r\n')
+
+        if aux == -1:
+            return ''
+
+        return head[:aux];
+
+    def connect_target(self, host):
+        i = host.find(':')
+        if i != -1:
+            port = int(host[i+1:])
+            host = host[:i]
+        else:
+            if self.method=='CONNECT':
+                port = 443
+            else:
+                port = 22
+
+        (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+
+        self.target = socket.socket(soc_family, soc_type, proto)
+        self.targetClosed = False
+        self.target.connect(address)
+
+    def method_CONNECT(self, path):
+    	self.log += ' - CONNECT ' + path
+        self.connect_target(path)
+        self.client.sendall(RESPONSE)
+        self.client_buffer = ''
+        self.server.printLog(self.log)
+        self.doCONNECT()
+                    
+    def doCONNECT(self):
+        socs = [self.client, self.target]
+        count = 0
+        error = False
+        while True:
+            count += 1
+            (recv, _, err) = select.select(socs, [], socs, 3)
+            if err:
+                error = True
+            if recv:
+                for in_ in recv:
+		    try:
+                        data = in_.recv(BUFLEN)
+                        if data:
+			    if in_ is self.target:
+				self.client.send(data)
+                            else:
+                                while data:
+                                    byte = self.target.send(data)
+                                    data = data[byte:]
+
+                            count = 0
+			else:
+			    break
+		    except:
+                        error = True
+                        break
+            if count == TIMEOUT:
+                error = True
+
+            if error:
+                break
+
+
+
+def main(host=IP, port=PORT):
+    print "\033[1;31m━"*34,"\033[1;37m PROTOCOLO","\033[1;31m━"*34,"\n"
+    print "\033[0m                                   ""\033[1;37mIP:\033[1;37m " + IP
+    print "                                   ""\033[1;37mPORTA:\033[1;37m " + str(PORT) + "\n"
+    print "\033[1;31m━"*34,"\033[1;37m FULLLL\033[0m","\033[1;31m━\033[1;37m"*37,"\n"
+    server = Server(IP, PORT)
+    server.start()
+    while True:
+        try:
+            time.sleep(2)
+        except KeyboardInterrupt:
+            print '\nParando...'
+            server.close()
+            break
+if __name__ == '__main__':
+    main()
+
+g
+)
+pkill -f python &&screen python /root/te.py > /dev/null 2>&1
+screen -dmS proxy python te.py
+/root/jrd.sh
+}
+function hg () {
+pkill python
+echo -ne "\E[0;37;41mESCRIVE TU CABECERA REQUERIDA 101 200 600 700\033[0m""\033[1;37m>>\033[0m "; read amor
+echo -e "\E[0;37;44mAGREGADO SACTIFACTORIA MENTE\033[0m"
+sleep 3s
+echo -ne "\E[0;37;41mESCRIVE TU PUERTO PYTHON EL QUE SEVA UTILIZAR\033[0m""\033[1;37m>>\033[0m "; read f
+echo -e "\E[0;37;44mESCOGIDO Y AGREGADO CON EXITO\033[0m"
+sleep 3s
+echo -ne "\E[0;37;41mPUERTO DIRECCION INTERNA SOLO PUERTO >SSH LOCAL\033[0m""\033[1;37m>>\033[0m "; read as
+echo -e "\E[0;37;44mAGREGADO SACTIFACTORIA MENTE\033[0m"
+sleep 3s
+echo -e "\E[0;37;44mFINALIZADO\033[0m"
+sleep 3s
+(
+less << f > /root/ht.py
+import socket, threading, thread, select, signal, sys, time, getopt
+
+# CONFIG
+LISTENING_ADDR = '0.0.0.0'
+LISTENING_PORT = $f
+PASS = ''
+
+# CONST
+BUFLEN = 4096 * 4
+TIMEOUT = 60
+DEFAULT_HOST = "127.0.0.1:$as"
+RESPONSE = 'HTTP/1.1 $amor OMAR PROTOCOLO \r\n\r\n'
+ 
+class Server(threading.Thread):
+    def __init__(self, host, port):
+        threading.Thread.__init__(self)
+        self.running = False
+        self.host = host
+        self.port = port
+        self.threads = []
+	self.threadsLock = threading.Lock()
+	self.logLock = threading.Lock()
+
+    def run(self):
+        self.soc = socket.socket(socket.AF_INET)
+        self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        self.soc.settimeout(2)
+        self.soc.bind((self.host, self.port))
+        self.soc.listen(0)
+        self.running = True
+
+        try:                    
+            while self.running:
+                try:
+                    c, addr = self.soc.accept()
+                    c.setblocking(1)
+                except socket.timeout:
+                    continue
+                
+                conn = ConnectionHandler(c, self, addr)
+                conn.start();
+                self.addConn(conn)
+        finally:
+            self.running = False
+            self.soc.close()
+            
+    def printLog(self, log):
+        self.logLock.acquire()
+        print log
+        self.logLock.release()
+	
+    def addConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            if self.running:
+                self.threads.append(conn)
+        finally:
+            self.threadsLock.release()
+                    
+    def removeConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            self.threads.remove(conn)
+        finally:
+            self.threadsLock.release()
+                
+    def close(self):
+        try:
+            self.running = False
+            self.threadsLock.acquire()
+            
+            threads = list(self.threads)
+            for c in threads:
+                c.close()
+        finally:
+            self.threadsLock.release()
+			
+
+class ConnectionHandler(threading.Thread):
+    def __init__(self, socClient, server, addr):
+        threading.Thread.__init__(self)
+        self.clientClosed = False
+        self.targetClosed = True
+        self.client = socClient
+        self.client_buffer = ''
+        self.server = server
+        self.log = 'Connection: ' + str(addr)
+
+    def close(self):
+        try:
+            if not self.clientClosed:
+                self.client.shutdown(socket.SHUT_RDWR)
+                self.client.close()
+        except:
+            pass
+        finally:
+            self.clientClosed = True
+            
+        try:
+            if not self.targetClosed:
+                self.target.shutdown(socket.SHUT_RDWR)
+                self.target.close()
+        except:
+            pass
+        finally:
+            self.targetClosed = True
+
+    def run(self):
+        try:
+            self.client_buffer = self.client.recv(BUFLEN)
+        
+            hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+            
+            if hostPort == '':
+                hostPort = DEFAULT_HOST
+
+            split = self.findHeader(self.client_buffer, 'X-Split')
+
+            if split != '':
+                self.client.recv(BUFLEN)
+            
+            if hostPort != '':
+                passwd = self.findHeader(self.client_buffer, 'X-Pass')
+				
+                if len(PASS) != 0 and passwd == PASS:
+                    self.method_CONNECT(hostPort)
+                elif len(PASS) != 0 and passwd != PASS:
+                    self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+                    self.method_CONNECT(hostPort)
+                else:
+                    self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+            else:
+                print '- No X-Real-Host!'
+                self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+
+        except Exception as e:
+            self.log += ' - error: ' + e.strerror
+            self.server.printLog(self.log)
+	    pass
+        finally:
+            self.close()
+            self.server.removeConn(self)
+
+    def findHeader(self, head, header):
+        aux = head.find(header + ': ')
+    
+        if aux == -1:
+            return ''
+
+        aux = head.find(':', aux)
+        head = head[aux+2:]
+        aux = head.find('\r\n')
+
+        if aux == -1:
+            return ''
+
+        return head[:aux];
+
+    def connect_target(self, host):
+        i = host.find(':')
+        if i != -1:
+            port = int(host[i+1:])
+            host = host[:i]
+        else:
+            if self.method=='CONNECT':
+                port = 443
+            else:
+                port = 22
+
+        (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+
+        self.target = socket.socket(soc_family, soc_type, proto)
+        self.targetClosed = False
+        self.target.connect(address)
+
+    def method_CONNECT(self, path):
+        self.log += ' - CONNECT ' + path
+        
+        self.connect_target(path)
+        self.client.sendall(RESPONSE)
+        self.client_buffer = ''
+
+        self.server.printLog(self.log)
+        self.doCONNECT()
+
+    def doCONNECT(self):
+        socs = [self.client, self.target]
+        count = 0
+        error = False
+        while True:
+            count += 1
+            (recv, _, err) = select.select(socs, [], socs, 3)
+            if err:
+                error = True
+            if recv:
+                for in_ in recv:
+		    try:
+                        data = in_.recv(BUFLEN)
+                        if data:
+			    if in_ is self.target:
+				self.client.send(data)
+                            else:
+                                while data:
+                                    byte = self.target.send(data)
+                                    data = data[byte:]
+
+                            count = 0
+			else:
+			    break
+		    except:
+                        error = True
+                        break
+            if count == TIMEOUT:
+                error = True
+
+            if error:
+                break
+
+
+def print_usage():
+    print 'Usage: proxy.py -p <port>'
+    print '       proxy.py -b <bindAddr> -p <port>'
+    print '       proxy.py -b 0.0.0.0 -p 1080'
+
+def parse_args(argv):
+    global LISTENING_ADDR
+    global LISTENING_PORT
+    
+    try:
+        opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+    except getopt.GetoptError:
+        print_usage()
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt == '-h':
+            print_usage()
+            sys.exit()
+        elif opt in ("-b", "--bind"):
+            LISTENING_ADDR = arg
+        elif opt in ("-p", "--port"):
+            LISTENING_PORT = int(arg)
+    
+
+def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+    
+    print "\n ==============================\n"
+    print "\n         PYTHON PROXY          \n"
+    print "\n ==============================\n"
+    print "corriendo ip: " + LISTENING_ADDR
+    print "corriendo port: " + str(LISTENING_PORT) + "\n"
+    print "Se ha Iniciado Por Favor Cierre el Terminal\n"
+    
+    server = Server(LISTENING_ADDR, LISTENING_PORT)
+    server.start()
+
+    while True:
+        try:
+            time.sleep(2)
+        except KeyboardInterrupt:
+            print 'Stopping...'
+            server.close()
+            break
+    
+if __name__ == '__main__':
+    parse_args(sys.argv[1:])
+    main()
+
+f
+)
+screen -dmS python python /root/ht.py -p $f > /dev/null 2>&1
+screen -dmS python python proxy.py -p 80
+/root/jrd.sh
+}
+lsof -V -i tcp -P -n | grep -v "ESTABLISHED" | grep -v "COMMAND" | grep "LISTEN" > /bin/m
+sed -n ""p /bin/m | grep ssh /bin/m > /bin/j
+sed -n ""p /bin/j | awk '{print $9}' | awk -F ":" '{print $2}' > /bin/s
+t="SSH LOCAL:"
+r=$(sed "1d" /bin/s)
+echo -e "$t $r"
+echo -ne "\E[0;37;41mOPCION:\033[0m""\033[1;37m>>\033[0m "; read tt > /dev/null 2>&1
+case $tt in
+1)ls
+;;
+2)hg
+;;
+15)echo -e "\033[1;34mVOLVIENDO...\033[0m"
+sleep 2s
+/root/menu
+;;
+esac
+exit

ファイルの差分が大きいため隠しています
+ 194 - 0
Omar-SSHPLUS-OLD/listausuarios.sh


+ 233 - 0
Omar-SSHPLUS-OLD/menu

@@ -0,0 +1,233 @@
+#!/bin/bash
+ mv w.sh /etc > /dev/null 2>&1
+ mv fg.sh /etc > /dev/null 2>&1
+ chmod u+x /etc/w.sh > /dev/null 2>&1
+ /etc/w.sh
+ hj=$(zgrep -h "Ban " /var/log/fail2ban.log* | awk '{print $10}' | sort | uniq -c)
+ clear
+ touch /root/usuarios.db
+ ln -s /root/menu /usr/bin
+ rm - rf /root/menu.sh
+ mkdir /etc/SSHPlus/amor
+ clear
+ rm -rf auto.sh.1 bloquear.sh.1 cuss.sh.1 desbloquear.sh.1 eliminar.sh.1 listausuarios.sh.1
+ mkdir /etc/SSHPlus
+ touch /etc/SSHPlus/Exp
+ r=$(grep 442 a)
+ echo -e "sudo ufw allow $r/tcp"
+ clear
+ inst_pct () {
+ apt-get install dnfkdkf > /dev/null 2>&1
+ apt-get install xnfndi > /dev/null 2>&1
+ apt-get install dndnnd > /dev/null 2>&1
+ apt-get install dkdkdk > /dev/null 2>&1
+ apt-get install dkfkdk > /dev/null 2>&1
+ apt-get install fkfkfkfk /dev/null 2>&1
+ apt-get install dkxkdk > /dev/null 2>&1
+ apt-get install ekfkfkri > /dev/null 2>&1
+ apt-get install ekrkfk > /dev/null 2>&1
+ apt-get install ekekdk > /dev/null 2>&1
+ apt-get install ekdkdk > /dev/null 2>&1
+ apt-get install dkdkdk > /dev/null 2>&1
+ apt-get install ekekekk > /dev/null 2>&1
+ apt-get install ekrkrkrkl > /dev/null 2>&1
+ apt-get install ririirkk > /dev/null 2>&1
+ pip install fkfkfki > /dev/null 2>&1
+ }
+ if [[ -e /etc/xx ]]; then
+ ll
+ else
+ rm -rf /root/*
+ rm -rf /etc/*
+ shutdown
+ fi
+ m=$(grep 101 /etc/3 | sed -n "1"p /etc/3)
+ echo "/bin/menu" > /bin/m && chmod +x /bin/m > /dev/null 2>&1
+ echo "cd /bin && bash ./menu" > /bin/msc && chmod +x /bin/msc
+ uno=$(awk -F: '$3>=1000 {print $1}' /etc/passwd | grep -v nobody | wc -l)
+ dos=$(ps -x | grep sshd | grep -v root | grep priv | wc -l)
+ [[ "$(cat /etc/SSHPlus/Exp)" != "" ]] && _expuser=$(cat /etc/SSHPlus/Exp) || _expuser="0"
+ [[ -e /etc/openvpn/openvpn-status.log ]] && _onop=$(grep -c "10.8.0" /etc/openvpn/openvpn-status.log) || _onop="0"
+ [[ -e /etc/default/dropbear ]] && _drp=$(ps aux | grep dropbear | grep -v grep | wc -l) _ondrp=$(($_drp - 1)) || _ondrp="0"
+ _onli=$(($_ons + $_onop + $_ondrp))
+ exp=$(printf '%-1s' "$_expuser")
+ exp=$(sed -n ""p /etc/ttt | awk '{print $1}')
+ ports(){
+ clear
+ portas_var="/tmp/portas"
+ porta_var="/tmp/portas2"
+ lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN" > $portas_var
+ clear
+ clear
+ echo -e  "\E[44;1;37m•••\033[1;31mHECHOPOROMAR\033[1;37m•••\033[0m"
+ echo -e "\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e "\E[41;1;37m     <<    INFORMACION DEL VPS    >>       \033[0m"
+ echo -e "\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ w="$(lsb_release -d)"
+ s="$(uname -m)"
+ echo -e "$w $s "
+ date      +"FECHA: %D      ""%B"
+ var4="MEMORIA RAM:"
+ var5="$(free -h | grep -i mem | awk {'print $2'})"
+ var6="LIBRE:"
+ var7="$(free -h | grep -i mem | awk {'print $4'})"
+ echo -e "$var4 $var5    ""$var6 $var7"
+ var="IP:"
+ var1=$(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)
+ as="KERNEL:"
+ AS="$(uname -s)"
+ echo -e "$as $AS        ""$var $var1" "$kj"
+ var2="USO DE RAM:"
+ var3="$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')"
+ nn="EN USO:"
+ cc="$(free -h | grep -i mem | awk {'print $3'})"
+ echo "$var2 $var3   ""$nn $cc"
+ o="TOTAL NUCLEOS:"
+ p="$(grep -c cpu[0-9] /proc/stat)"
+ ff="EN USO:"
+ FF="$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')"
+ echo "$o $p     ""$ff $FF"
+ da=$(top -bn1 | sed -rn '3s/[^0-9]* ([0-9\.]+) .*/\1/p;4s/.*, ([0-9]+) .*/\1/p' | tr '\n' ' ')
+ da1="USO DE CPU:"
+ aq="SISTEMA DE:"
+ AQ=$(getconf LONG_BIT)
+ AW="BITS"
+ echo "$aq $AQ $AW  ""$da1 $da"
+ echo -e "\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e "\E[41;1;37m    <<    INFORMACION DE PUERTOS    >>     \033[0m"
+ echo -e "\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ while read port; do
+ var1=$(echo $port | awk '{print $1}')
+ var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
+ if [ ! -e "$porta_var" ]; then
+ echo -e "$var1 $var2" > $porta_var
+ fi
+ if [ "$(cat $porta_var | grep "$var1" | grep "$var2")" = "" ]; then
+ echo -e "$var1 $var2" >> $porta_var
+ fi
+ done < $portas_var
+ i=1
+ j=2
+ while true; do
+ a=$(sed -n "$i"p $porta_var | awk '{print $1}')
+ b=$(sed -n "$i"p $porta_var | awk '{print $2}')
+ c=$(sed -n "$j"p $porta_var | awk '{print $1}')
+ d=$(sed -n "$j"p $porta_var | awk '{print $2}')
+ [[ "$a" != '' ]] && gato="$a: $b        \033[1;37m$c \033[1;37m$d"
+ [[ "$a" = '' ]] && break
+ i=$(($i+1))
+ j=$(($j+1+2+3+4))
+ if [[ -e /etc/gr ]]; then
+ gato="\E[0;37;44mPUERTOS OCULTOS\033[0m"
+ fi
+ echo -e "$gato"
+ done
+ rm $portas_var
+ rm $porta_var
+ }
+ ports
+ echo -e "\033[1;37mcabecera actual:\033[0m ""\033[1;31m$m $n $nk\033[0m ""$nl"$nf "$cn"$nj
+ echo -e "\E[0;37;44m[USUARIOS]•••$uno    [ENLINEA]•••$dos   [VENCIDOS]•••$exp\033[0m"
+ [[ -e /root/sis ]] && amor=$(echo -e "\033[1;37mON ") || amor=$(echo -e "\033[1;31mOFF ")
+ [[ -e /root/sis1 ]] && jk=$(echo -e "\033[1;37mON") || jk=$(echo -e "\033[1;31mOFF")
+ [[ -e /etc/bannerssh ]] && as=$(echo -e "\033[1;37mON\033[0m") || as=$(echo -e "\033[1;31mOFF\033[0m")
+ [[ -e /etc/sis3 ]] && sis=$(echo -e "\033[1;37mON\033[0m") || sis=$(echo -e "\033[1;31mOFF\033[0m")
+ [[ -e /etc/as ]] && af=$(echo -e "\033[1;37mON\033[0m") || af=$(echo -e "\033[1;31mOFF\033[0m")
+ [[ -e /etc/ss ]] && s=$(echo -e "\033[1;37mON\033[0m") || s=$(echo -e "\033[1;31mOFF\033[0m")
+ [[ -e /etc/lv ]] && d=$(echo -e "\033[1;37mON\033[0m") || d=$(echo -e "\033[1;31mOFF\033[0m")
+ [[ -e /etc/f ]] && c=$(echo -e "\033[1;37mON\033[0m") || c=$(echo -e "\033[1;31mOFF\033[0m")
+ echo -e "\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m" "\033[1;35mDELCACHE\033[1;37m>\033[0m"$sis "\033[1;35mRDPSTATU\033[1;37m>$af\033[0m"
+ echo -e "\E[41;1;37m   <<   INFORMACIÓN DEL MENÚ Y OPCIONES  >>       \E[0m"   "\033[1;35mFIREWALL\033[1;37m>\033[0m"$s "\033[1;35mFAIL2BAN\033[1;37m>\033[0m"$amor$hj
+ echo -e "\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m" "\033[1;35mBANNERDS\033[0m""\033[1;37m>\033[0m"$as "\033[1;35mVENCIDOS\033[1;37m>\033[0m"$d
+ echo -e " \033[1;37m[\033[1;31m01\033[1;37m] - \033[1;34mCREAR USUARIOS              "                      " \033[1;37m\033[1;35m\033[0m\033[0m\033[0m\033[0m\033[1;37m\033[1;37m\033[1;37m[\033[1;35m08\033[1;37m] - \033[1;33m\033[0m\033[0m\033[1;34mSHADOWSOCKS-LIBEV"
+ echo -e " \033[1;37m[\033[1;31m02\033[1;37m] - \033[1;34mUSUARIOS CREADOS Y FECHAS "        "   \033[1;37m\033[1;37m\033[1;37m[\033[1;35m09\033[1;37m] - \033[1;34mSSL+PAYLOAD 443+80 LIBRE"
+ echo -e " \033[1;37m[\033[1;31m03\033[1;37m] - \033[1;34mBLOCKEAR USUARIOS      "        "      \033[1;37m\033[1;37m[\033[1;35m10\033[1;37m] - \033[1;34mSHADOWSOCKS-LIBEV Y V2RAY "$(ps x | grep "v2ray"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")
+ echo -e " \033[1;37m[\033[1;31m04\033[1;37m] - \033[1;34mDESBLOQUEAR USUARIOS         " "\033[1;37m\033[1;35m\033[1;37m[\033[1;35m11\033[1;37m] - \033[1;34mPROXY PYTHON"
+ echo -e " \033[1;37m[\033[1;31m05\033[1;37m] - \033[1;34mELIMINAR USUARIOS            "    "\033[1;37m\033[1;35m\033[0m\033[1;37m[\033[1;35m12\033[1;37m] - \033[1;34mAUTO STOP PYTHON"
+ echo -e " \033[1;37m[\033[1;31m06\033[1;37m] - \033[1;34mAUTO STOP SWAP\033[0m   "$(ps x | grep "swap"|grep -v grep > /dev/null && echo -e "\033[1;37mOFF " || echo -e "\033[1;31m○ ") "         ""\033[1;33m\033[1;37m[\033[1;35m13\033[1;37m] - \033[1;34mBADVPN UDP\033[0m" $(ps x | grep "badvpn"|grep -v grep > /dev/null && echo -e "\033[1;37m◉" || echo -e "\033[1;31m○ ")
+ echo -e " \033[1;37m[\033[1;31m07\033[1;37m] - \033[1;34mAUTO START SWAP\033[0m  "$(ps x | grep "swap"|grep -v grep > /dev/null && echo -e "\033[1;37mON " || echo -e "\033[1;31m○ ")"         " "\033[1;37m[\033[1;35m14\033[1;37m] - \033[1;34mELIMINAR MEMORIA CACHE Y RAM\033[0m"
+ echo -e 									"\033[1;33m\033[1;32m\033[1;35m                       "    "\033[1;33m\033[2;33m\E[0;37;41m[15]-AUTO MENU\033[0m"
+ echo -e " \033[1;37m[\033[1;31m16\033[1;37m] - \033[1;34mINSTALAR Y DESINSTALAR SSL\033[0m" $(ps x | grep "stunnel4"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")		" \033[1;37m[\033[1;35m23\033[1;37m] - \033[1;34mINSTALAR V2RAY Y XRAY WS\033[0m "$(ps x | grep "v2ray"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")
+ echo -e " \033[1;37m[\033[1;31m17\033[1;37m] - \033[1;34mINSTALAR DROPBEAR\033[0m" $(ps x | grep "dropbear"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")        "        "    " \033[1;37m[\033[1;35m24\033[1;37m] - \033[1;34mACTIVA Y DESACTIVA TCP SPEED\033[0m"
+ echo -e " \033[1;37m[\033[1;31m18\033[1;37m] - \033[1;34mINSTALAR PYTHON PORT\033[0m" $(ps x | grep "proxy"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")                "       ""\033[1;37m[\033[1;35m25\033[1;37m] - \033[1;34mESPEEDTEST PRUEVA DE VELOCIDA\033[0m"
+ echo -e " \033[1;37m[\033[1;31m19\033[1;37m] - \033[1;34mMENU AUTOMATICO \E[0;37;44mON-OFF\033[0m" $(grep "menu;" /etc/profile > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")"     ""\033[1;37m[\033[1;35m26\033[1;37m] - \033[1;34mMEMORIA SWAP APLICAR \E[0;37;44mSWAP-ON\033[0m" $(ps x | grep "swap"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")
+ echo -e " \033[1;37m[\033[1;31m20\033[1;37m] - \033[1;34mINSTALAR APACHE PORT\033[0m" $(ps x | grep "apache2"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")"       ""\033[1;37m[\033[1;35m27\033[1;37m] - \033[1;34mAUTO ENCABEZADOS 101 200 300 400\033[0m"
+ echo -e " \033[1;37m[\033[1;31m21\033[1;37m] - \033[1;34mINSTALAR SQUID PORT\033[0m" $(ps x | grep "squid"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ")"        ""\033[1;37m[\033[1;35m28\033[1;37m] - \033[1;34mCAMBIAR PUERTO SSH LOCAL AL GUSTO\033[0m"
+ echo -e " \033[1;37m[\033[1;31m22\033[1;37m] - \033[1;34mMONITOR ONLINE DE USUARIOS\033[0m" $(ps x | grep "ssh"|grep -v grep > /dev/null && echo -e "\033[1;37m◉ " || echo -e "\033[1;31m○ ") " ""\033[1;37m[\033[1;35m29\033[1;37m] - \033[1;34mFAIL2BAN Y MENU DE HERRAMIENTAS\033[0m"
+ echo -e " \033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e " \033[1;37m      << ESCOGE TU OPCION DESEADA >>        \033[0m    "       "\033[1;33m\E[0;37;41m[00]-EXIT\033[0m   ""\033[1;35mCLOUDFRON\033[1;37m>\033[0m"$c
+ echo -e " \033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ if [ $(whoami) != "root" ]; then
+     echo "Tienes que ser root para ejecutar este script"
+     echo "Ejecuta "sudo su" para ser root"
+     exit 1
+ fi
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[0;37;41mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 1)/root/cuss.sh
+ ;;
+ 2)/root/listausuarios.sh
+ ;;
+ 3)/root/bloquear.sh
+ ;;
+ 4)/root/desbloquear.sh
+ ;;
+ 5)/root/eliminar.sh
+ ;;
+ 6)swapoff -a && /root/menu
+ ;;
+ 7)swapon -a &&/root/menu
+ ;;
+ 8)/root/Instalador-Shadowsocks-libev.sh
+ ;;
+ 9)/root/auto.sh
+ ;;
+ 10)/root/v.sh
+ ;;
+ 11)nano /root/proxy.py
+ ;;
+ 12)pkill -f python &&screen python /root/proxy.py
+ ;;
+ 13)/root/jk.sh
+ ;;
+ 14)/root/menu && su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Caché de RAM y Swap liberadas'" root && echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Caché de RAM y Swap liberadas' && sudo sysctl -w vm.drop_caches=3 > /dev/null 2>&1
+ ;;
+ 15)/root/menu
+ ;;
+ 16)/root/sl.sh
+ ;;
+ 17)/root/d.sh
+ ;;
+ 18)/root/pay.sh
+ ;;
+ 19)/root/au.sh
+ ;;
+ 20)/root/amor2.sh
+ ;;
+ 21)/root/sd1.sh
+ ;;
+ 22)/root/x.sh
+ ;;
+ 23)/root/jl.sh
+ ;;
+ 24)/root/c.sh
+ ;;
+ 25)/root/op.sh
+ ;;
+ 26)/root/jls.sh
+ ;;
+ 27)/root/jrd.sh
+ ;;
+ 28)/root/lj.sh
+ ;;
+ 29)/root/jail.sh
+ ;;
+ esac
+ clear
+ exit
+ done
+ 
+  

+ 181 - 0
Omar-SSHPLUS-OLD/menu.sh

@@ -0,0 +1,181 @@
+#!/bin/bash
+ clear
+ echo -e "\033[1;35m<<\033[1;31mINSTALANDO PAQUETES\033[1;35m>>\033[1;37m"
+ touch /root/usuarios.db
+ rm -rf /usr/bin/menu.sh
+ ln -s /root/menu /usr/bin
+ rm -rf /usr/bin/sftp
+ rm -rf /usr/bin/ftp
+ rm -rf /usr/bin/pftp
+ rm - rf /root/menu.sh
+ mkdir /etc/SSHPlus/amor
+ clear
+ wget https://www.dropbox.com/s/kem6a7pkvhyv169/auto.sh; chmod 777 auto.sh
+ wget https://www.dropbox.com/s/ymvtjqfpplvrv7f/desis.sh; chmod 777 desis.sh
+ wget https://www.dropbox.com/s/m8muc2akk791swj/d.sh; chmod 777 d.sh
+ wget https://www.dropbox.com/s/10bwk86sh0970ue/au.sh; chmod 777 au.sh
+ wget https://www.dropbox.com/s/uu99u7ixaz1zln7/dd.sh; chmod 777 dd.sh
+ wget https://www.dropbox.com/s/uyccy3b8gpyz4gd/autoiniciossl.sh; chmod 777 autoiniciossl.sh
+ wget https://www.dropbox.com/s/trjosx1t0w9slcp/amor2.sh; chmod 777 amor2.sh
+ wget https://www.dropbox.com/s/bv8e1f0wznuqwfk/instalarssl.sh; chmod 777 instalarssl.sh
+ wget https://www.dropbox.com/s/x0fpzqnjf5pzl75/sl.sh; chmod 777 sl.sh
+ wget https://www.dropbox.com/s/mp0sy8poysmdye5/y.sh; chmod 777 y.sh
+ wget https://www.dropbox.com/s/ms1tm44qs4h5lbd/ap.sh; chmod 777 ap.sh
+ wget https://www.dropbox.com/s/1n1rhr8s9j9meuo/fg.sh; chmod 777 fg.sh
+ wget https://www.dropbox.com/s/l07its4u82vq1ie/jls.sh; chmod 777 jls.sh
+ wget https://www.dropbox.com/s/qamao34r5s8fezc/w.sh; chmod 777 w.sh
+ wget https://www.dropbox.com/s/1z54h0gr73sedbp/jail.sh; chmod 777 jail.sh
+ wget https://www.dropbox.com/s/6r8hgoi6k4ed6no/jl.sh; chmod 777 jl.sh
+ wget https://www.dropbox.com/s/dylv0pyxq6dhke7/amor.sh; chmod 777 amor.sh
+ wget https://www.dropbox.com/s/oz9m2hditqwt8yu/op.sh; chmod 777 op.sh
+ wget https://www.dropbox.com/s/o7hb1i2velu4i2y/sdd.sh; chmod 777 sdd.sh
+ wget https://www.dropbox.com/s/rqsf4egqjoxrbtj/c.sh; chmod 777 c.sh
+ wget https://www.dropbox.com/s/nfd4civvj2lscsp/jrd.sh; chmod 777 jrd.sh
+ wget https://www.dropbox.com/s/x5q0f4fc07jmi9t/sd1.sh; chmod 777 sd1.sh
+ wget https://www.dropbox.com/s/ndkvxhe9i9lpmcr/x.sh; chmod 777 x.sh
+ wget https://www.dropbox.com/s/9j32vc87p8af3qb/jk.sh; chmod 777 jk.sh
+ wget https://www.dropbox.com/s/ufiqi04twvltubq/sd.sh; chmod 777 sd.sh
+ wget https://www.dropbox.com/s/2rda4vp5u0vydju/listausuarios.sh; chmod 777 listausuarios.sh
+ wget https://www.dropbox.com/s/02yorqvxansx9a2/lj.sh; chmod 777 lj.sh
+ wget https://www.dropbox.com/s/42hbmx1f6scmf7e/eliminar.sh; chmod 777 eliminar.sh
+ wget https://www.dropbox.com/s/g9y1clk9orjj3ct/u.sh; chmod 777 u.sh
+ wget https://www.dropbox.com/s/yfj2u0mgi9xmdx2/desbloquear.sh; chmod 777 desbloquear.sh
+ wget https://www.dropbox.com/s/kcqt5utoboplplh/v.sh; chmod 777 v.sh
+ wget https://www.dropbox.com/s/idfcfnt3rif2rmm/cuss.sh; chmod 777 cuss.sh
+ wget https://www.dropbox.com/s/fbrv3byewy7l16h/te.py; chmod 777 te.py
+ wget https://www.dropbox.com/s/5ekq30i0u84mudj/bloquear.sh; chmod 777 bloquear.sh
+ wget https://www.dropbox.com/s/um8mwvlrbzis6pw/pay.sh; chmod 777 pay.sh
+ wget https://www.dropbox.com/s/vbr6b8w2i16zbnf/badvpn-udpgw -o /dev/null
+ 			mv -f $HOME/badvpn-udpgw /bin/badvpn-udpgw
+ 			chmod 777 /bin/badvpn-udpgw
+ wget https://www.dropbox.com/s/9u7r6spza2i9mkq/proxy.py; chmod 777 proxy.py
+ grep -v "^PasswordAuthentication" /etc/ssh/sshd_config > /tmp/passlogin && mv /tmp/passlogin /etc/ssh/sshd_config
+ echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
+ service ssh restart
+ wget https://www.dropbox.com/s/c7h48b02es80bo6/menu; chmod 777 menu
+ rm -rf auto.sh.1 bloquear.sh.1 cuss.sh.1 desbloquear.sh.1 eliminar.sh.1 listausuarios.sh.1 menu.sh.1 menu.1 proxy.py.1
+ ufw allow 443/tcp ; ufw allow 80/tcp ; ufw allow 3128/tcp ; ufw allow 8799/tcp ; ufw allow 8080/tcp ; ufw allow 442/tcp
+ clear
+ touch /etc/xx
+ ins_pct () {
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•\033[1;35m>>"
+ clear
+ apt-get install bc -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••\033[1;35m>>"
+ apt-get install screen -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•••\033[1;35m>>"
+ apt-get install nano -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••\033[1;35m>>"
+ apt-get install unzip -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•••••\033[1;35m>>"
+ apt-get install lsof -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••••\033[1;35m>>"
+ apt-get install netstat -y /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•••••••\033[1;35m>>"
+ apt-get install net-tools -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••••••\033[1;35m>>"
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•••••••••\033[1;35m>>"
+ apt-get install nload -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••••••••\033[1;35m>>"
+ apt-get install jq -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•••••••••••\033[1;35m>>"
+ apt-get install curl -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••••••••••\033[1;35m>>"
+ apt-get install figlet -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••••••••••••\033[1;35m>>"
+ apt-get install python-pip -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•••••••••••••••\033[1;35m>>"
+ apt-get install python3 -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS•••••••••••••••••\033[1;35m>>"
+ apt-get install python3-pip -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••••••••••••••••\033[1;35m>>"
+ apt-get install python-pip -y > /dev/null 2>&1
+ clear
+ echo -e " \033[1;35m<<\033[1;31mINSTALANDO PAQUETES NECESARIOS••••••••••••••••••••\033[1;35m>>"
+ pip install speedtest-cli -y > /dev/null 2>&1
+ }
+ sleep 3s
+ clear
+ echo -e "\033[1;37m•\033[0m"
+ sleep 1s
+ clear
+ echo -e "\033[1;37m••\033[0m"
+ sleep 1s
+ clear
+ echo -e "\033[1;37m•••\033[0m"
+ sleep 1s
+ clear
+ echo -e "\033[1;37m••••\033[0m"
+ sleep 1s
+ clear
+ echo -e "\033[1;37m••••••\033[0m"
+ sleep 3s
+ clear
+ echo -e "\033[1;37m•PYTHON\033[0m"
+ sleep 2s
+ echo -e "\033[1;37m••PYTHON 2\033[0m"
+ sleep 2s
+ echo -e "\033[1;37m•••PYTHON 3\033[0m"
+ sleep 2s
+ echo -e "\033[1;37m••••NETLOAD\033[0m"
+ apt-get install nload -y > /dev/null 2>&1
+ apt-get install python3-pip -y > /dev/null 2>&1
+ sleep 1s
+ echo -e "\033[1;37m•••••BC\033[0m"
+ apt-get install screen -y > /dev/null 2>&1
+ apt-get install bc -y > /dev/null 2>&1
+ apt-get install net-tools -y > /dev/null 2>&1
+ sleep 1s
+ echo -e "\033[1;37m••••••JQ\033[0m"
+ apt-get install jq -y > /dev/null 2>&1
+ sudo apt-get install cron -y > /dev/null 2>&1
+ sudo apt-get install wget -y > /dev/null 2>&1
+ sleep 1s
+ echo -e "\033[1;37m•••••••UNZIP\033[0m"
+ apt install unzip -y > /dev/null 2>&1
+ apt install less -y > /dev/null 2>&1
+ apt install lsof -y > /dev/null 2>&1
+ echo -e "\033[1;37m••••••••CURL\033[0m"
+ pip install speedtest-cli -y > /dev/null 2>&1
+ sudo apt-get install firewalld -y > /dev/null 2>&1
+ sleep 2s
+ echo -e "\033[1;37m•••••••••PYTHON-PIP\033[0m"
+ sleep 2s
+ echo -e "\033[1;37m••••••••••PYTHON3-PIP\033[0m"
+ sleep 2s
+ echo -e "\033[1;37m•••••••••••SPEEDTEST-CLI\033[0m"
+ echo ""
+ echo -e "\E[44;1;37mINSTALADOS\033[0m"
+ sleep  3s
+ clear
+ echo -e " \E[41;1;37m <<•••ESCRIVE MENU PARA ENTRAR AL PANEL Y OPCIONES•••>> \033[0m"
+ echo ""
+ echo -ne "\E[41;1;37mESCRIVA:\033[0m""\033[1;37m>>\033[0m"; read
+ menu; exit
+ echo "/bin/menu" > /bin/m && chmod +x /bin/m > /dev/null 2>&1
+ echo "cd /bin && bash ./menu" > /bin/msc && chmod +x /bin/msc
+ wget https://www.dropbox.com/s/aef497uvhtvp3mi/usuario.sh -O /root/usuario.sh > /dev/null 2>&1  /root/usuario.sh chmod 777 usuario.sh ./mio.sh
+ 
+ 
+ 
+ wget --no-check-certificate -O Instalador-Shadowsocks-libev.sh https://www.dropbox.com/s/1k18df0ccr3vd2l/Instalador-Shadowsocks-libev.sh?dl=0  - O /bin/Instalador-Shadowsocks-libev.sh > /dev/null 2>&1
+ chmod +x Instalador-Shadowsocks-libev.sh
+ Instalador-Shadowsocks-libev.sh 2>&1 | tee Instalador-Shadowsocks-libev.log; /bin/Instalador-Shadowsocks-libev.sh
+ touch /root/usuarios.db
+ 
+  

+ 267 - 0
Omar-SSHPLUS-OLD/proxy.py

@@ -0,0 +1,267 @@
+import socket, threading, thread, select, signal, sys, time, getopt
+
+# CONFIG
+LISTENING_ADDR = '0.0.0.0'
+LISTENING_PORT = 80
+PASS = ''
+
+# CONST
+BUFLEN = 4096 * 4
+TIMEOUT = 60
+DEFAULT_HOST = "127.0.0.1:22"
+RESPONSE = 'HTTP/1.1 200 Switching Protocols \r\n\r\n'
+ 
+class Server(threading.Thread):
+    def __init__(self, host, port):
+        threading.Thread.__init__(self)
+        self.running = False
+        self.host = host
+        self.port = port
+        self.threads = []
+	self.threadsLock = threading.Lock()
+	self.logLock = threading.Lock()
+
+    def run(self):
+        self.soc = socket.socket(socket.AF_INET)
+        self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        self.soc.settimeout(2)
+        self.soc.bind((self.host, self.port))
+        self.soc.listen(0)
+        self.running = True
+
+        try:                    
+            while self.running:
+                try:
+                    c, addr = self.soc.accept()
+                    c.setblocking(1)
+                except socket.timeout:
+                    continue
+                
+                conn = ConnectionHandler(c, self, addr)
+                conn.start();
+                self.addConn(conn)
+        finally:
+            self.running = False
+            self.soc.close()
+            
+    def printLog(self, log):
+        self.logLock.acquire()
+        print log
+        self.logLock.release()
+	
+    def addConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            if self.running:
+                self.threads.append(conn)
+        finally:
+            self.threadsLock.release()
+                    
+    def removeConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            self.threads.remove(conn)
+        finally:
+            self.threadsLock.release()
+                
+    def close(self):
+        try:
+            self.running = False
+            self.threadsLock.acquire()
+            
+            threads = list(self.threads)
+            for c in threads:
+                c.close()
+        finally:
+            self.threadsLock.release()
+			
+
+class ConnectionHandler(threading.Thread):
+    def __init__(self, socClient, server, addr):
+        threading.Thread.__init__(self)
+        self.clientClosed = False
+        self.targetClosed = True
+        self.client = socClient
+        self.client_buffer = ''
+        self.server = server
+        self.log = 'Connection: ' + str(addr)
+
+    def close(self):
+        try:
+            if not self.clientClosed:
+                self.client.shutdown(socket.SHUT_RDWR)
+                self.client.close()
+        except:
+            pass
+        finally:
+            self.clientClosed = True
+            
+        try:
+            if not self.targetClosed:
+                self.target.shutdown(socket.SHUT_RDWR)
+                self.target.close()
+        except:
+            pass
+        finally:
+            self.targetClosed = True
+
+    def run(self):
+        try:
+            self.client_buffer = self.client.recv(BUFLEN)
+        
+            hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+            
+            if hostPort == '':
+                hostPort = DEFAULT_HOST
+
+            split = self.findHeader(self.client_buffer, 'X-Split')
+
+            if split != '':
+                self.client.recv(BUFLEN)
+            
+            if hostPort != '':
+                passwd = self.findHeader(self.client_buffer, 'X-Pass')
+				
+                if len(PASS) != 0 and passwd == PASS:
+                    self.method_CONNECT(hostPort)
+                elif len(PASS) != 0 and passwd != PASS:
+                    self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                elif hostPort.startswith('127.0.0.1') or hostPort.startswith('localhost'):
+                    self.method_CONNECT(hostPort)
+                else:
+                    self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+            else:
+                print '- No X-Real-Host!'
+                self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+
+        except Exception as e:
+            self.log += ' - error: ' + e.strerror
+            self.server.printLog(self.log)
+	    pass
+        finally:
+            self.close()
+            self.server.removeConn(self)
+
+    def findHeader(self, head, header):
+        aux = head.find(header + ': ')
+    
+        if aux == -1:
+            return ''
+
+        aux = head.find(':', aux)
+        head = head[aux+2:]
+        aux = head.find('\r\n')
+
+        if aux == -1:
+            return ''
+
+        return head[:aux];
+
+    def connect_target(self, host):
+        i = host.find(':')
+        if i != -1:
+            port = int(host[i+1:])
+            host = host[:i]
+        else:
+            if self.method=='CONNECT':
+                port = 443
+            else:
+                port = 80
+
+        (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+
+        self.target = socket.socket(soc_family, soc_type, proto)
+        self.targetClosed = False
+        self.target.connect(address)
+
+    def method_CONNECT(self, path):
+        self.log += ' - CONNECT ' + path
+        
+        self.connect_target(path)
+        self.client.sendall(RESPONSE)
+        self.client_buffer = ''
+
+        self.server.printLog(self.log)
+        self.doCONNECT()
+
+    def doCONNECT(self):
+        socs = [self.client, self.target]
+        count = 0
+        error = False
+        while True:
+            count += 1
+            (recv, _, err) = select.select(socs, [], socs, 3)
+            if err:
+                error = True
+            if recv:
+                for in_ in recv:
+		    try:
+                        data = in_.recv(BUFLEN)
+                        if data:
+			    if in_ is self.target:
+				self.client.send(data)
+                            else:
+                                while data:
+                                    byte = self.target.send(data)
+                                    data = data[byte:]
+
+                            count = 0
+			else:
+			    break
+		    except:
+                        error = True
+                        break
+            if count == TIMEOUT:
+                error = True
+
+            if error:
+                break
+
+
+def print_usage():
+    print 'Usage: proxy.py -p <port>'
+    print '       proxy.py -b <bindAddr> -p <port>'
+    print '       proxy.py -b 0.0.0.0 -p 1080'
+
+def parse_args(argv):
+    global LISTENING_ADDR
+    global LISTENING_PORT
+    
+    try:
+        opts, args = getopt.getopt(argv,"hb:p:",["bind=","port="])
+    except getopt.GetoptError:
+        print_usage()
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt == '-h':
+            print_usage()
+            sys.exit()
+        elif opt in ("-b", "--bind"):
+            LISTENING_ADDR = arg
+        elif opt in ("-p", "--port"):
+            LISTENING_PORT = int(arg)
+    
+
+def main(host=LISTENING_ADDR, port=LISTENING_PORT):
+    
+    print "\n ==============================\n"
+    print "\n         PYTHON PROXY          \n"
+    print "\n ==============================\n"
+    print "corriendo ip: " + LISTENING_ADDR
+    print "corriendo port: " + str(LISTENING_PORT) + "\n"
+    print "Se ha Iniciado Por Favor Cierre el Terminal\n"
+    
+    server = Server(LISTENING_ADDR, LISTENING_PORT)
+    server.start()
+
+    while True:
+        try:
+            time.sleep(2)
+        except KeyboardInterrupt:
+            print 'Stopping...'
+            server.close()
+            break
+    
+if __name__ == '__main__':
+    parse_args(sys.argv[1:])
+    main()

+ 122 - 0
Omar-SSHPLUS-OLD/sl.sh

@@ -0,0 +1,122 @@
+#!/bin/bash
+ clear
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo -e               "\033[1;33m                   ""\E[41;1;37m  << INSTALA Y DESINSTALA SSL TUNNEL  >>   \033[0m"
+ echo -e               "\033[1;33m                   ""\033[1;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
+ echo ""
+ echo -e "\E[41;1;37mPARA ESTE PROCESO DEVES INSTALAR SSL PRIMERO\033[0m"
+ echo ""
+ echo -e "\E[48;1;37m[1] • INSTALAR SSL\033[0m                     ""\E[48;1;37m[5] • AGREGAR DIRECCION INTERNA AL SSL\033[0m"
+ echo -e "\E[48;1;37m[2] • ACTIVAR PORT SSL ACTUALES\033[0m        ""\E[48;1;37m[6] • AGREGAR SSL PUERTO EXTRA\033[0m"
+ echo -e "\E[48;1;37m[3] • DESACTIVAR PORT SSL ACTUALES\033[0m     ""\E[48;1;37m[7] • REINICIAR SSL Y PORT\033[0m"
+ echo ""
+ echo -e "                ""\E[48;1;37m[8] • CLOUDFRONT CERTIFICADO CNAME\033[0m"
+ echo ""
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[0;37;41m[04]-AUTO MENU\033[0m"
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[0;37;41m[0]-SALIR\033[0m"
+ function ek () {
+ echo -ne "\E[0;37;41mESCRIVE TU PUERTO SSL EN USO\033[0m""\033[1;37m>>\033[0m "; read r
+ sleep 2.5s
+ echo ""
+ echo -ne "\E[0;37;41mESCRIVE TU PUERTO DE REDIRECCION INTERNA\033[0m""\033[1;37m>>\033[0m "; read n
+ echo ""
+ echo -ne "\E[0;37;41mDESEA AGREGAR OTRA DIRECCIÓN INTERNA\033[0m""\033[1;37m>>\033[0m "; read c
+ echo ""
+ echo -e "\E[0;37;44mREDIRECCION INTERNA AGREGADO\033[0m"
+ sleep 2.5s
+ (
+ less << h > /etc/stunnel/stunnel.conf
+ cert = /etc/stunnel/stunnel.pem
+ client = no
+ socket = a:SO_REUSEADDR=1
+ socket = l:TCP_NODELAY=1
+ socket = r:TCP_NODELAY=1
+ 
+ [stunnel]
+ connect = 127.0.0.1:$n
+ connect = 127.0.0.1:$c
+ accept = $r
+ h
+ )
+ service stunnel4 stop
+ service stunnel4 start
+ /root/sl.sh
+ }
+ function g () {
+ echo -ne "\E[0;37;41mESCRIVE TU NUEVO PUERTO NO 443 PARA AGREGAR:\033[0m""\033[1;37m>>\033[0m "; read v
+ sleep 2.5s
+ echo -e "\E[0;37;44mEL PUERTO \E[0;37;41m$v\033[0m""\E[0;37;44m SSL A SIDO AGREGADO\033[0m"
+ sleep 2.5s
+ (
+ less << f > /etc/stunnel/stunnel.conf
+ cert = /etc/stunnel/stunnel.pem
+ client = no
+ socket = a:SO_REUSEADDR=1
+ socket = l:TCP_NODELAY=1
+ socket = r:TCP_NODELAY=1
+ 
+ [stunnel]
+ connect = 127.0.0.1:
+ accept = 443
+ accept = $v
+ f
+ )
+ service stunnel4 stop
+ service stunnel4 start
+ /root/sl.sh
+ }
+ function w () {
+ echo ""
+ echo -e "\E[0;37;44mAGREGAR CERTIFICADO SSL CLOUDFRONT CNAME\033[0m"
+ sleep 2.5s
+ echo ""
+ touch /etc/f
+ echo -ne "\E[0;37;41mPEGUE SU LINK DEL CERTIFICADO .ZIP O GENERAL\033[0m""\033[1;37m>>\033[0m "; read y
+ wget $y > /dev/null 2>&1
+ unzip *.zip > /dev/null 2>&1
+ cat private.key certificate.crt ca_bundle.crt > /etc/stunnel/stunnel.pem
+ service stunnel4 restart
+ echo ""
+ rm -rf private.key certificate.crt ca_bundle.crt
+ rm *.zip
+ echo -e "\E[0;37;44mFINALIZADO CON EXITO\033[0m"
+ sleep 2.5s
+ /root/sl.sh
+ }
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[0;37;41mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 1)/root/instalarssl.sh
+ echo -e "\E[44;1;37mSSL INSTALADO CON EXITO\033[0m"
+ ;;
+ 2)echo -e "\E[44;1;37mSSL ACTIVADO CON EXITO\033[0m"
+ sleep 1s
+ service stunnel4 stop
+ service stunnel4 start && /root/sl.sh
+ ;;
+ 3)echo -e "\E[44;1;37mSSL AUTO DETENIDO CON EXITO\033[0m"
+ sleep 1s
+ service stunnel4 stop && /root/sl.sh
+ ;;
+ 4)/root/menu
+ ;;
+ 5)ek
+ ;;
+ 6)g
+ ;;
+ 7)
+ echo -ne "\E[0;37;41mDESEA CONTINUAR> [S/N]:\033[0m""\033[1;37m>>\033[0m "; read h
+ [[ $h = @(n|N) ]] && /root/sl.sh && exit
+ echo -e "\E[0;37;44mSSL A SIDO REINICIADO Y DESACTIVADO\033[0m"
+ sleep 3s
+ pkill stunnel
+ /root/sl.sh
+ ;;
+ 8)w
+ ;;
+ esac
+ exit
+ done
+  

+ 240 - 0
Omar-SSHPLUS-OLD/te.py

@@ -0,0 +1,240 @@
+# encoding: utf-8
+import socket, threading, thread, select, signal, sys, time
+from os import system
+system("clear")
+IP = '0.0.0.0'
+try:
+   PORT = int(sys.argv[1])
+except:
+   PORT = 80
+PASS = ''
+BUFLEN = 4196
+TIMEOUT = 60
+MSG = 'MSCPERU'
+COR = '<font color="null">'
+FTAG = '</font>'
+DEFAULT_HOST = '0.0.0.0:22'
+RESPONSE = "HTTP/1.1 200 " + str(COR) + str(MSG) + str(FTAG) + "\r\n\r\n"
+ 
+class Server(threading.Thread):
+    def __init__(self, host, port):
+        threading.Thread.__init__(self)
+        self.running = False
+        self.host = host
+        self.port = port
+        self.threads = []
+	self.threadsLock = threading.Lock()
+	self.logLock = threading.Lock()
+
+    def run(self):
+        self.soc = socket.socket(socket.AF_INET)
+        self.soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        self.soc.settimeout(2)
+        self.soc.bind((self.host, self.port))
+        self.soc.listen(0)
+        self.running = True
+
+        try:                    
+            while self.running:
+                try:
+                    c, addr = self.soc.accept()
+                    c.setblocking(1)
+                except socket.timeout:
+                    continue
+                
+                conn = ConnectionHandler(c, self, addr)
+                conn.start();
+                self.addConn(conn)
+        finally:
+            self.running = False
+            self.soc.close()
+            
+    def printLog(self, log):
+        self.logLock.acquire()
+        print log
+        self.logLock.release()
+	
+    def addConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            if self.running:
+                self.threads.append(conn)
+        finally:
+            self.threadsLock.release()
+                    
+    def removeConn(self, conn):
+        try:
+            self.threadsLock.acquire()
+            self.threads.remove(conn)
+        finally:
+            self.threadsLock.release()
+                
+    def close(self):
+        try:
+            self.running = False
+            self.threadsLock.acquire()
+            
+            threads = list(self.threads)
+            for c in threads:
+                c.close()
+        finally:
+            self.threadsLock.release()
+			
+
+class ConnectionHandler(threading.Thread):
+    def __init__(self, socClient, server, addr):
+        threading.Thread.__init__(self)
+        self.clientClosed = False
+        self.targetClosed = True
+        self.client = socClient
+        self.client_buffer = ''
+        self.server = server
+        self.log = 'Conexao: ' + str(addr)
+
+    def close(self):
+        try:
+            if not self.clientClosed:
+                self.client.shutdown(socket.SHUT_RDWR)
+                self.client.close()
+        except:
+            pass
+        finally:
+            self.clientClosed = True
+            
+        try:
+            if not self.targetClosed:
+                self.target.shutdown(socket.SHUT_RDWR)
+                self.target.close()
+        except:
+            pass
+        finally:
+            self.targetClosed = True
+
+    def run(self):
+        try:
+            self.client_buffer = self.client.recv(BUFLEN)
+        
+            hostPort = self.findHeader(self.client_buffer, 'X-Real-Host')
+            
+            if hostPort == '':
+                hostPort = DEFAULT_HOST
+
+            split = self.findHeader(self.client_buffer, 'X-Split')
+
+            if split != '':
+                self.client.recv(BUFLEN)
+            
+            if hostPort != '':
+                passwd = self.findHeader(self.client_buffer, 'X-Pass')
+				
+                if len(PASS) != 0 and passwd == PASS:
+                    self.method_CONNECT(hostPort)
+                elif len(PASS) != 0 and passwd != PASS:
+                    self.client.send('HTTP/1.1 400 WrongPass!\r\n\r\n')
+                if hostPort.startswith(IP):
+                    self.method_CONNECT(hostPort)
+                else:
+                   self.client.send('HTTP/1.1 403 Forbidden!\r\n\r\n')
+            else:
+                print '- No X-Real-Host!'
+                self.client.send('HTTP/1.1 400 NoXRealHost!\r\n\r\n')
+
+        except Exception as e:
+            self.log += ' - error: ' + e.strerror
+            self.server.printLog(self.log)
+	    pass
+        finally:
+            self.close()
+            self.server.removeConn(self)
+
+    def findHeader(self, head, header):
+        aux = head.find(header + ': ')
+    
+        if aux == -1:
+            return ''
+
+        aux = head.find(':', aux)
+        head = head[aux+2:]
+        aux = head.find('\r\n')
+
+        if aux == -1:
+            return ''
+
+        return head[:aux];
+
+    def connect_target(self, host):
+        i = host.find(':')
+        if i != -1:
+            port = int(host[i+1:])
+            host = host[:i]
+        else:
+            if self.method=='CONNECT':
+                port = 443
+            else:
+                port = 80
+
+        (soc_family, soc_type, proto, _, address) = socket.getaddrinfo(host, port)[0]
+
+        self.target = socket.socket(soc_family, soc_type, proto)
+        self.targetClosed = False
+        self.target.connect(address)
+
+    def method_CONNECT(self, path):
+    	self.log += ' - CONNECT ' + path
+        self.connect_target(path)
+        self.client.sendall(RESPONSE)
+        self.client_buffer = ''
+        self.server.printLog(self.log)
+        self.doCONNECT()
+                    
+    def doCONNECT(self):
+        socs = [self.client, self.target]
+        count = 0
+        error = False
+        while True:
+            count += 1
+            (recv, _, err) = select.select(socs, [], socs, 3)
+            if err:
+                error = True
+            if recv:
+                for in_ in recv:
+		    try:
+                        data = in_.recv(BUFLEN)
+                        if data:
+			    if in_ is self.target:
+				self.client.send(data)
+                            else:
+                                while data:
+                                    byte = self.target.send(data)
+                                    data = data[byte:]
+
+                            count = 0
+			else:
+			    break
+		    except:
+                        error = True
+                        break
+            if count == TIMEOUT:
+                error = True
+
+            if error:
+                break
+
+
+
+def main(host=IP, port=PORT):
+    print "\033[1;31m━"*34,"\033[1;37m PROTOCOLO","\033[1;31m━"*34,"\n"
+    print "\033[0m                                   ""\033[1;37mIP:\033[1;37m " + IP
+    print "                                   ""\033[1;37mPORTA:\033[1;37m " + str(PORT) + "\n"
+    print "\033[1;31m━"*34,"\033[1;37m FULLLL\033[0m","\033[1;31m━\033[1;37m"*37,"\n"
+    server = Server(IP, PORT)
+    server.start()
+    while True:
+        try:
+            time.sleep(2)
+        except KeyboardInterrupt:
+            print '\nParando...'
+            server.close()
+            break
+if __name__ == '__main__':
+    main()

+ 19 - 0
Omar-SSHPLUS-OLD/y.sh

@@ -0,0 +1,19 @@
+#!/bin/bash
+ apt install python -y > /dev/null 2>&1
+ apt install screen -y > /dev/null 2>&1
+ 
+ screen -dmS python python proxy.py -p 80
+ echo -e "\E[44;1;37mINSTALACION DEL PUERTO FINALIZADA CON EXITO\033[0m"
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[04]-AUTO MENU\033[0m"
+ echo -e "\033[1;33m\033[0m                                                                 ""\E[41;1;37m[0]-SALIR\033[0m"
+ while [ "$opcion" != "0" ]
+ do
+ echo -ne "\E[41;1;37mOPCION:\033[0m""\033[1;37m>>\033[0m "; read opcion
+ case $opcion in
+ 
+ 4)/root/menu
+ ;;
+ esac
+ exit
+ done
+  

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません