1
Sistema / Re:Como funciona o processo de encriptar senhas no Linux?
« Online: 26 de Fevereiro de 2017, 03:53 »
E nunca mais apareceu.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
#!/bin/bash
# deve ser executado como root ou com o sudo
if [[ $(id -u) -ne 0 ]] ; then echo "Please run as root" ; exit 1 ; fi
# arquivos com dados dos fabricantes
BASE_FILE='/etc/oui.txt'
FILE='/etc/oui_trimmed.txt'
# baixa e formata o arquivo com os códigos dos fabricantes se ele ainda não existe
if [ ! -e $FILE ]
then
if [ ! -e $BASE_FILE ]
then
wget -O $BASE_FILE -c http://standards.ieee.org/develop/regauth/oui/oui.txt
fi
# o grep filtra as linhas, o awk separa apenas a primeira coluna,
# o sed troca os "-" por ":" e retira os espaços em branco do início da linha
grep ' (hex)' oui.txt | awk -F ' ' '{print $1}' | sed 's/-/:/g' | sed 's/ //g' >> $FILE
fi
# número de linhas do arquivo
OUI_MAX=$(wc -l < $FILE)
# escolhe uma linha aleatória
RANDOM_MANUFACTURER=$(((RANDOM % OUI_MAX)+1))
# guarda o código presente na linha aleatória
RANDOM_MANUFACTURER=$(head -n $RANDOM_MANUFACTURER $FILE | tail -1)
# coloca o código escolhido no começo do endereço
MAC=$RANDOM_MANUFACTURER
# valor máximo pra cada dígito (em decimal)
MAX=$((16**2))
# gera aleatóriamente os dígitos restantes
for x in 1 2 3; do
# gera um número aleatório entre 0 e 255
DIGIT=$((RANDOM % MAX))
# converte pra base hexadecimal
DIGIT=`echo "obase=16; $DIGIT" | bc`
# formata pra dois dígitos
DIGIT=`printf "%02x" 0x$DIGIT`
# adiciona no final do endereço
MAC=$MAC:$DIGIT
done
echo "O novo MAC será '$MAC'"
# configura o novo endereço MAC
service network-manager stop
ifconfig $1 down
ifconfig $1 hw ether $MAC
ifconfig $1 up
service network-manager start
#!/bin/bash
echo $SHELL
MAC=00
MAX=$(echo "16 ^ 2 - 1" | bc)
echo "MAX vale "$MAX
for x in 1 2 3 4 5; do
rand=$RANDOM
NUM=$((${rand} % ${MAX}))
echo "NUM em decimal "$NUM
NUM=`echo "obase=16; $NUM" | bc`
echo "NUM convertida para hexa "$NUM
NUM=`printf "%02x" 0x$NUM`
MAC=$MAC:$NUM
done
echo "O novo MAC será "$MAC
service network-manager stop
ifconfig $1 down
ifconfig $1 hw ether $MAC
ifconfig $1 up
service network-manager start
$ sudo ./chmac.sh wlan0Por acaso descobri que se rodar com "bash" antes funciona:
/bin/bash
MAX vale 255
./chmac.sh: 14: ./chmac.sh: arithmetic expression: expecting primary: " % 255"
$ sudo /bin/bash ./chmac.sh wlan0
/bin/bash
MAX vale 255
NUM em decimal 238
NUM convertida para hexa EE
NUM em decimal 55
NUM convertida para hexa 37
NUM em decimal 31
NUM convertida para hexa 1F
NUM em decimal 176
NUM convertida para hexa B0
NUM em decimal 162
NUM convertida para hexa A2
O novo MAC será 00:ee:37:1f:b0:a2
network-manager stop/waiting
network-manager start/running, process 7946
Fiquei chateado pensando que o titulo do tópico era verdadeiro.Livio, sugiro que você coloque uma interrogação no final do título para evitar confusão. Será que você poderia, por favor, fazer essa alteração?