Socat Proxifier
Publicado por Perfil removido (última atualização em 23/04/2021)
[ Hits: 1.534 ]
Apenas um script simples que usa socat e processos nativos do sistema para checar conexões de proxies e conectar a qualquer máquina em qualquer serviço "anonimamente", escrito da forma mais "portável" possível (aceito sugestões de adaptação btw. (:)
#!/bin/bash # dummy script, thats all (: #trap 'killall' INT #killall() { # kill -TERM 0 #} proxy_random() { proxycount=$(ls ~/.socatp/|grep proxy|wc -l) #while IFS= read -r proxycount || [[ -n "$proxycount" ]];do for((c=1;c<=$proxycount;c++));do ip_handler=$(cat ~/.socatp/proxy*|shuf|sed 's/[:]/ /g'|awk '{print $1}' >~/.socatp//ip) port_handler=$(cat ~/.socatp/proxy*|shuf|sed 's/[:]/ /g'|awk '{print $2}' >~/.socatp/port) ip=$(cat ~/.socatp/ip|head -n1) port=$(cat ~/.socatp/port|head -n1) printf "\e[32m$ip:$port\e[0m\n" socat STDIO PROXY:$ip:$b:$P,proxyport=$port printf "\n" done } help_msg() { printf "Use $0 -h for help.\n" exit 1 } error() { printf "Something went wrong $(id -un).\n" exit 1 } help() { printf "\t[OPTIONS]\n\ -h/-v/-p/-b/-P <value>\n\ -h: \t\t\t this.\n\ -v: \t\t\t version.\n\ -p[1-4]/-pR/-pC: \t a proxy choice, \"-pR\" implies on using a random proxy, \"-pC\" is a massive proxy connection checker (you must use \"-pC <file>\" before the random option).\n\ -b <ip>: \t\t a target ip to connect to under proxy chosen.\n\ -P <port>: \t\t a port for target service.\n [EXAMPLE]\n\ $0 -p1 -b192.168.0.2 -P1337\n\ $0 -b192.168.0.2 -P1337 -p1\n\ $0 -P1337 -p1 -b192.168.0.2\n\ $0 -pR -b192.168.0.2 -P1337 (random proxy)\n\ $0 -b192.168.0.2 -P1337 \t (not specifying \"-p (or -p*)\" will use a random proxy as well. $0 -pC proxylist.txt \t (will be saved on \"~/.socatp/\" working proxies, at connection time it will automatically randomize proxies if needed.\n\n" exit 0 } version() { socat_v=$($socat -V|grep version|head -n1) printf "socatp (socat proxifier) version 1.2.4\n$socat: $socat_v\n\n" } socat=$(which socat) if [[ -z "$socat" ]];then printf "Install socat first!\n" exit 1 fi while getopts ":p:b:P:hv" opt;do case "${opt}" in p) p=${OPTARG} ;; b) b=${OPTARG} ;; P) P=${OPTARG} ;; h) h=${OPTARG} help ;; v) v=${OPTARG} version ;; *) error ;; esac done shift $((OPTIND-1)) if [[ ! -z "$h" ]];then help fi if [[ "$p" == "C" && -z "$b" && -z "$P" ]];then rp=(200) proxycount=$(cat $1|wc -l) socatp_dir="~/.socatp" if [[ ! -d "$socatp_dir" ]];then printf "Checking socatp config dir...\n" mkdir -p ~/.socatp/ fi printf "Checking proxys...\n" for((c=1;c<=$proxycount;c++));do proxylist=$(cat $1|shuf|awk '{if(NR=='$c') print $0}') request=$(curl -m2 -six $proxylist ifconfig.me|head -n1|grep -o 200) if [[ "$request" -eq 200 ]];then printf "$proxylist \t \e[32mON\e[0m \t [$c] \t\t ($socatp_dir/proxy$c)\n" echo $proxylist >~/.socatp/proxy$c fi if [[ "$request" -ne 200 ]];then printf "$proxylist \t \e[31mOFF\e[0m \t [$c]\n" fi done exit 0 fi if [[ -z "$b" || -z "$P" ]];then help_msg exit 1 fi if [[ -z "$p" || "$p" == "R" ]];then version proxy_random exit 0 fi if [[ "$p" == 1 && "$b" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ && ! -z "$P" ]];then proxy1=18.141.177.23 proxy1_p=80 #proxy1_auth="pro1:pro1" #printf "proxy: $proxy1\ntarget: $b\nport: $P\n" exec $socat STDIO PROXY:$proxy1:$b:$P,proxyport=$proxy1_p fi if [[ "$p" == 2 && "$b" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ && ! -z "$P" ]];then proxy2=120.24.145.9 proxy2_p=3128 exec $socat STDIO PROXY:$proxy2:$b:$P,proxyport=$proxy2_p fi if [[ "$p" == 3 && "$b" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ && ! -z "$P" ]];then proxy3=156.54.219.103 proxy3_p=80 exec $socat STDIO PROXY:$proxy3:$b:$P,proxyport=$proxy3_p fi if [[ "$p" == 4 && "$b" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ && ! -z "$P" ]];then proxy4=156.54.219.109 proxy4_p=80 exec $socat STDIO PROXY:$proxy4:$b:$P,proxyport=$proxy4_p fi else error fi done << EOF
Converter arquivo em PDF e enviar por e-mail pelo terminal
Conexão e desconexão ADSL automáticas
Monitoramento de espaço em disco
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)