Socat Proxifier
Publicado por Perfil removido (última atualização em 23/04/2021)
[ Hits: 1.474 ]
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
Script para subir interface wireless
Usar o Google Translate para ler (speak) a seleção
Montando compartilhamentos Webdav no Linux
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
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
UUID da partição efi mudou, multiboot já era...e agora? (0)