Knockd (bate, bate, bate na porta do céu)
Knockd é um servidor port-knock. Ele escuta todo o tráfego em uma interface Ethernet (ou PPP), procurando por "batidas" sequências de requisições. Um cliente faz requisições para o servidor enviando um pacote TCP (ou UDP) para uma porta no servidor.
[ Hits: 10.890 ]
Por: Bruno Viana em 08/05/2017 | Blog: https://myshell.blog
function printUsage() {
echo ""
echo "$(basename "$0") -s Server_Knockd -p PORTA1 PORTA2 PORTA2 -P Pora_ssh_diferente"
echo "$(basename "$0") -s 192.168.0.222 -p 7000 8000 9000 -P 2222"
echo ""
echo "-s ou --host: Especifica o servidor alvo"
echo "-p ou --port: Especifica as portas para batida (knock)"
echo "-P ou --port-ssh: Especifica as porta padrão, se nada for passado sera usado as padrão (22)"
echo ""
exit
}
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] || [ -z "$6" ];then
printUsage
fi
while true ;do
case "$1" in
-s | --host) ip="$2"; shift 2 ;;
-p | --port) porta0="$2"
porta1="$3"
porta2="$4"
shift 4 ;;
-P | --port-ssh) portaSSH="$2"; shift 2 ;;
-h | --help) printUsage ; exit ;;
*) break ;;
esac
done
function verificaPorta() {
for port in "$porta0" "$porta1" "$porta2"; do
if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ];then
echo "A porta deve ser um numero entre 1 e 65535"
printUsage
fi
done
}
function testaSSH() {
timeout 1 bash -c "echo > /dev/tcp/$ip/$1"
}
function openClose() {
for i in "$porta0" "$porta1" "$porta2"; do
echo > /dev/tcp/"$ip"/"$i"
sleep 2
done
}
function main() {
verificaPorta
openClose
test -z "$portaSSH" && testaSSH 22
test -n "$portaSSH" && testaSSH "$portaSSH"
}
#! /bin/bash
# Knock Open Close 0.1
# @Author: Bruno Viana
function printUsage() {
echo ""
echo "$(basename "$0") -s Server_Knockd -p PORTA1 PORTA2 PORTA2 -P Pora_ssh_diferente"
echo "$(basename "$0") -s 192.168.0.222 -p 7000 8000 9000 -P 2222"
echo ""
echo "-s ou --host: Especifica o servidor alvo"
echo "-p ou --port: Especifica as portas para batida (knock)"
echo "-P ou --port-ssh: Especifica as porta padrao, se nada for passado sera usado as padrao (22)"
echo ""
exit
}
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] || [ -z "$6" ];then
printUsage
fi
function openClose() {
for i in "$porta0" "$porta1" "$porta2"; do
echo > /dev/tcp/"$ip"/"$i"
sleep 2
done
}
function testaSSH() {
timeout 1 bash -c "echo > /dev/tcp/$ip/$1"
}
function verificaPorta() {
for port in "$porta0" "$porta1" "$porta2"; do
if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ];then
echo "A porta deve ser um numero entre 1 e 65535"
printUsage
exit
fi
done
}
while true ;do
case "$1" in
-s | --host) ip="$2"; shift 2 ;;
-p | --port) porta0="$2"
porta1="$3"
porta2="$4"
shift 4 ;;
-P | --port-ssh) portaSSH="$2"; shift 2 ;;
-h | --help) printUsage ; exit ;;
*) break ;;
esac
done
function main() {
verificaPorta
openClose
test -z "$portaSSH" && testaSSH 22
test -n "$portaSSH" && testaSSH "$portaSSH"
}
main
# End of scrpit
Hotspot rápido com Coovachilli
MaraDNS: Simples - Seguro - Robusto (parte 3)
Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros
Segurança em Software de Código Aberto
Instalação e configuração do HexChat com a rede Tor
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









