Boot Password Cracker
QUALQUER DUVIDA NO FUNCIONAMENTO DO PROGRAMA DEVE SER ENVIADA PARA
elektro@null.net
E' inegavel, que um dos aspectos mais importantes no que toca a seguranca
em sistemas Unix, e' que nao hajam utilizadores cujas passowrds sejam
canja, para o mais reles cracker que exista!!!
Para utilizadores normais isto pode nao dizer muito, mas para quem
tem a tarefa de (bem) administrar um sistema Unix, sabe que e' no minimo
frustante, ter o sistema bem configurado e depois deitar tudo a perder
porque um utilizador "permitiu" que a sua password fosse, facilmente,
descoberta,....abrindo uma brecha na seguranca da maquina!!
Qualquer ataque a um sistema, comeca pela tentativa de "entrada" no
sistema, depois disto ser conseguido, qual e' a primeira coisa que se
faz???...exacto, geralmente, depois de se obter root, e sacar o ficheiro
shadow, para que se consigam arranjar mais acounts, que facilitem o proximo
ataque!!!
Portanto cabe ao administrador de sistema tentar minimizar os riscos
deste acto! Digam la se nao e frustante por exemplo, um hacker ter o
trabalho de descobrir um bug no sistema, conseguir sacar o shadow para
depois descobrir que nao conseguiu descobrir nenhuma conta!! Um exemplo
real disto e' por exemplo que, o "velhinho" bug do phf raramente funcionaria
se o ficheiro passwd nao fosse um "porta aberta" para o sistema!!
Deste facto nasceu a necessidade de criar uma aplicacao que me permitisse
controlar a fiabilidade das passwords dos users das "minhas" maquinas!
(posso mesmo dizer, POR EXPERIENCIA PROPRIA, que o facto de ter
alertado os users para este problema o numero de utilizacoes "duvidosas"
diminuiu dramaticamante!).
Este tipo de programa nao e novo, porem nenhum ainda preve os sistemas
que tenham instalados o pacote shadow!!!!!!!
O programa, cujo o codigo, se encontra em baixo, automatiza todas
accoes que um Sysop, deve tomar para resolver parte deste problema:
Como qualquer pessoa sabe, um dos metodos mais eficientes usados pelos
crackers, e o de testar passwords relacionadas com a entrada GECOS
do utilizador (quem nao sabe o que e' a entrada GECOS de um user, aconselho
a leitura da .pt Zine nš1, o artigo "Um utilitario de cracking para
DOS", que e' sobre um programa que explora esta fraqueza!). Portanto o
que este programa faz, que no fundo e' um cracker on-line alterado e adaptado
a cumprir precisamente, o contrario! Ou seja, em vez de crackar
passwordso que ele faz e' prevenir o root (e por opcao o user), que a sua
password e uma brecha a' seguranca do sistema!
Uma das coisas deste utilitario e que mesmo que uma password seja
descoberta, nem no log do root nem na notificacao ao user, a password e'
divulgada, com o objectivo de preservar a privacidade do user,e de prevenir
a interseccao dos logs e das notificacoes por outros users mal-inten-
cionados!
Entao ao correr o programa as passwords dos users sao testadas (mais
adiante desenvolverei mais este ponto). Se uma password for "fraca", um
log e criado (bpc.log) a dizer qual o user que foi "apanhado", e caso
a respectiva opcao seja seleccionada, o user e notificado atraves de um
mail do root, com um texto pre'-escrito, que se devera encontrar na directoria
do executavel, e por defaul este file dever-se-a' chamar
"aviso.txt", podendo no entanto ser alterado o nome e o caminho do novo
ficheiro de notificacao (flag -nXXXXX da linha de comandos), no final
do texto estara escrito uma notificacao default que devera ser copiada
para um ficheiro.
Este programa pode ser chamado na shell, pela linha de comandos:
#bpc [opcoes]
outra funcionalidade deste programa e que esta incluida uma opcao de
manter o processo em memoria (sleep) que permitira determinar a perioci-
dade das verificacoes, por default e 24h (o normal numa maquina com um
numero razoavelmente elevado de users!). Funcionalidade que pode ser al-
terada com a flag -tXX que altera para XX o tempo de intervalo das veri-
ficacoes para XX (em horas, eg: de 2 em 2 dias --> -t48). A flag -s desa-
ctiva a opcao de adormecer o processo em memoria (que se encontra por
default). Por fim, a flag -m desactiva a opcao de notificar o user, (caso
nao o queira notificar). Caso a opcao de notificar o user esteja selecci-
onada (default) e nao o seja possivel fazer, no log do root estara' o mo-
tivo!!!
Outra maneira de chamar o programa e' usar o script de inicializacao
do sistema no arranque (edite o ficheiro /etc/rc.d/rc.local e acrescente
a linha de comando correspondente) assim cada vez que iniciar o sistema
uma verificacao e feita.
Ainda outra maneira e utilizar o utilitario "crontab" (recomendado),
e dizer no seu ficheiro de inicializacao o que pretende. Porem e' consi-
derado que podera utilizar a opcao sleep do programa, pois a memoria gas-
ta nao e significativa!
IMPORTANTE: SO O ROOT TERA PERMISSOES PARA CORRER O PROGRAMA (NECESSARIO
PARA LER /ETC/SHADOW, E PARA QUE A INTEGRIDADE DO SISTEMA
NAO SEJA AMEACADA POR OUTROS UTILIZADORES.
As passwords testadas, como foi dito em cima, estao relacionadas com
a entrada GECOS de cada user:
A GECOS e' dividida em palavras e cada uma dessas palavras e' mani-
pulada por funcoes de:
alem de testar evidentemente a propria string!:))
A seguir encontra-se um link paracodigo do programa, e a seguir um
link para mensagem de notificacao default, que devera ser cortada e cola-
da num ficheiro, de nome "aviso.txt", e colocado na directoria do execu-
tavel (ler texto acima para lidar com este ficheiro).
(para administradores de sistemas)
------------------------------------------
by Elektro
onde as opcoes sao: