Socat Proxifier
Publicado por Perfil removido (última atualização em 23/04/2021)
[ Hits: 2.860 ]
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
Zshortcut - criar atalhos no menu de programas
Usando o google pra gerar um tradutor em modo texto
Beckup .tar.gz com Data e Hora
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (5)
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (5)









