Boot Password Cracker
(para administradores de sistemas)
------------------------------------------
by Elektro

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]
onde as opcoes sao:

-h ajuda
-oXXXX altera o ficheiro de destino do log, para XXXX
-nXXXX altera o ficheiro de entrada de notificacao, para XXXX
-m liga/desliga a opcao de notificar o utilizador
-tXX altera o intervalo entre verificacoes (default 24h) para XXh
-s corre o programa apenas uma vez e sai. No Sleep

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:

- inversao de string
- concatenacao de string por ela propria
- troca de 'o' ou 'O' por 0
- acrescentar numeros de 1 a 100 a seguir a string (eg. user32)

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).

codigo: bpc.c

mensagem de notificacao aviso.txt