Bonjour
Lors qu'une attaque ARP sur votre reseau au niveau de votre gw, gwctl affichera un message sur toutes les consoles, et emmetera des beeps aléatoires.
le script:
Dependences:
beeps
screen
Installation:
nommer le script gwctl.sh
Commande:
Aller salut ;)
credit: linuxtrack.net
Lors qu'une attaque ARP sur votre reseau au niveau de votre gw, gwctl affichera un message sur toutes les consoles, et emmetera des beeps aléatoires.
le script:
Code:
#!/bin/bash
#Gestion des dépendance et installation des dépendances :
declare -a DEPENDENCIES=("beep screen");
declare -a MANAGERS=("dnf" "apt-get");
for DEPENDENCY in ${DEPENDENCIES[@]};
do
echo -n "Verification des dépendances : $DEPENDENCY "
if hash $DEPENDENCY 2>/dev/null
then
echo "- OK"
else
echo "- ERREUR"
for MANAGER in ${MANAGERS[@]}
do
if hash $MANAGER 2>/dev/null
then
echo -n "$DEPENDENCY manquante, Voullez-vous l'installer via $MANAGER ? [Y/N] (default is Y): "
read ANSWER
if [[ "$ANSWER" == "Y" || "$ANSWER" == "y" || "$ANSWER" == "" ]];
then
$MANAGER" install "$DEPENDENCY
else
echo "Terminating"
exit -1
fi
unset ANSWER
fi
done
fi
done
##################################################################
# Déclaration des variables
ficmac="/etc/gwctl.conf"
out="/dev/null"
nbbeep=3
ipgwsalle=$(ip r | grep default | cut -d " " -f 3)
enablelog=0
log=./macgw.log
# L'adresse MAC est stockée dans un fichier au premier lancement du script
if [[ -f $ficmac ]]
then
source $ficmac
macgwinit=$MAC
else
echo -e "Erreur de chargement du fichier $ficmac"
read -p "Voullez qu'il soit rempli automatiquement ? [Y:n]" ANSWER
if [[ "$ANSWER" == "Y" || "$ANSWER" == "y" || "$ANSWER" == "" ]];
then
ping -c 1 $ipgwsalle >$out 2>$out
ip n | sed -n '/10.25.255.254/ s/.*addr \([^\s]*\) .*$/MAC=\1/p' > $ficmac
source $ficmac
macgwinit=$MAC
else
echo "Yolo"
exit -1
fi
unset ANSWER
fi
#MAC DE DEBUG : rend un faux positif
#macgwinit="00:23:47:c5:23:c1"
#################
affichtop ()
{
clear
echo "--------------------------------------"
echo "| IP Passerelle : $ipgwsalle |"
echo "| MAC Passerelle : $macgwinit |"
echo "--------------------------------------"
echo ""
}
affichmaj ()
{
echo ""
echo ""
echo ' /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\'
echo " _ "
echo " / \ Changement de l'adresse MAC de $ipgwsalle"
echo "/ ! \ MAC : $macgw"
echo "----- "
echo ' /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\'
echo ""
echo " [ Relevé initial : $horodadeb -> $macdeb ]"
echo ""
}
# Debut du script
while :
do
ping -c1 $ipgwsalle >$out
macgw=$(ip n | grep $ipgwsalle | cut -d " " -f 5)
if [[ $macgw != $macgwinit ]]
then
# On conserve l'horodatage du constat du premier changement
if [[ -z $horodadeb ]]
then
horodadeb=$(date +"%F %R")
macdeb=$macgw
[[ $enablelog = 1 ]] && echo "$horodadeb [suivigw] - " >>$log
fi
affichtop
affichmaj
lsmod | grep "^pcspkr "
if [[ $? -ne 0 ]]
then
snd=off
modprobe pcspkr 2>$out
fi
echo ""
echo ""
echo ""
echo "---------------------------------------------"
echo "Controle en cours ; <CTRL> + <C> pour Quitter"
echo "---------------------------------------------"
beep -l ${RANDOM%%??} -f ${RANDOM%%??}
beep -l ${RANDOM%%??} -f ${RANDOM%%??}
beep -l ${RANDOM%%??} -f ${RANDOM%%??}
affichmaj > /dev/console
fi
sleep 1
affichtop
echo "-------------------------------------------------------"
echo "Controle en cours ; <CTRL> + <c> pour Quitter----------"
echo "Controle en cours ; <CTRL> + <a> puis <d>pour détacher-"
echo "-------------------------------------------------------"
done
beeps
screen
Installation:
nommer le script gwctl.sh
Code:
mv gwctl.sh gwctl
cp gwctl /etc/init.d
update-rc.d gwctl defaults
Code:
service gwctl start
démmare le service
service gwctl stop
arete le service
service gwctl control
prend le controle de la session screen attacher au service
pour sortir de la session screen : "ctrl-a d"
credit: linuxtrack.net
J'aime:
Kennybox et (membre supprimé)