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.894 ]
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
Adicionando baterias automotivas extras em nobreaks
Principais fontes de vulnerabilidade no Linux
PSAD: Port Scan Attack Detector
Recuperação do arquivo sudoers - comandos su e sudo não funcionam mais [Resolvido]
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
Alguém executou um rm e quase mata a Pixar! (4)
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)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









