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.730 ]
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
SSH Connection With non-NIST Russian Cipher and Distro for Military Use
Hardening em sistemas operacionais Linux (Completo)
Monitorando máquinas Windows com o Nagios
Bom escudo não teme espada: o módulo pam_cracklib
O espaço e a segurança cibernética
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
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (5)
O programa assinador digital (4)









