segunda-feira, 31 de agosto de 2009

O poder do Nmap

O Nmap é uma poderosa ferramenta para mapeamento de rede. O que diferencia o Nmap das demais opções disponíveis é a grande quantidade de técnicas e opções disponíveis para a varredura de rede.
O propósito deste artigo é mostrar as principais técnicas e opções de varredura existentes nesta versátil ferramenta.
O Nmap é mantido por "Fyodor" em seu website http://www.insecure.org o site possui bastante conteúdo para quem se gosta de segurança da informação.

Agora vamos ao que interessa.

O Nmap está presente em praticamente todos os repositórios de praticamente todas as distribuições. Para instalá-lo no ubuntu 9.04 siga o passo a seguir:

apt-get install nmap

Depois de instalado o Nmap está pronto para ser utilizado.

Para se ter acesso a todo o poder de fogo do Nmap é preciso que você esteja logado no sistema como um usuário privilegiado uma vez que o nmap utiliza pacotes customizados que só podem ser gerados por usuários com acesso total aos recursos do sistema. O uso do Nmap por usuários não privilegiados não significa que o mesmo não irá funcionar, mas certos métodos de varredura não estarão disponíveis para esses usuários.

Técnicas de Varredura

O Nmap possui Quinze métodos de varredura, cada um com suas características, vantagens e desvantagens.

Abaixo segue um sumário dos métodos de varredura utilizados pelo Nmap.




TCP SYN Scan(-sS)

Este método de varredura permite ao Nmap colher as informações a respeito de portas abertas sem completar o processo de conexão conhecido como "TCP Handshake". Quando uma porta é identificada o processo de "TCP Handshake" é reiniciado sem que a conexão seja realizada.
Uma das vantagens desse método é que uma vez que a conexão não é efetivamente criada ela não vai constar nos logs do sistema alvo.
Esse método de varredura é utilizado por default no Nmap para usuários privilegiados.

TCP connect Scan (-sT)

Este método de varredura utiliza uma conexão TCP normal para determinar as portas abertas em um dispositivo remoto. Uma das vantagens deste método é que não há a necessidade de se utilizar um usuário privilegiado para a varredura, já a desvantagem deste método é que uma vez que a conexão é efetivamente realizada, a mesma vai constar nos logs do sistema alvo.

FIN Scan (-sF), Xmas Tree Scan (-sX) e Null Scan (-sN)

Estas três formas de varredura estão agrupadas porque seu funcionamento é bastante similar. Esses tipos de varredura são conhecidos como "stealth" pois mandam apenas um pacote para o host a ser verificado e aguarda apenas um pacote como retorno, utilizando o mínimo possível de banda para a verificação.

FIN Scan

Este método consiste no envio de um pacote com a flag FIN para a o dispositivo a ser verificado. Se um pacote FIN for enviado a uma porta fechada um pacote com a flag RST será enviado como resposta. Já se a porta estiver aberta nenhuma resposta é enviada de volta a estação realizando a varredura. Há também a possibilidade de que a porta sendo monitorada esteja sendo gerenciada por um firewall que realize o DROP do pacote enviado a porta em questão. Por isso os resultados apresentados por esse scan são apresentados como abaixo:

nmap -sF -v 192.168.0.1
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-04-23
21:17 EDT
Initiating FIN Scan against 192.168.0.1 [1663 ports] at 21:17
The FIN Scan took 1.51s to scan 1663 total ports.
Host 192.168.0.1 appears to be up ... good.
Interesting ports on 192.168.0.1:
(The 1654 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
23/tcp open|filtered telnet
79/tcp open|filtered finger
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
514/tcp open|filtered shell
886/tcp open|filtered unknown
2049/tcp open|filtered nfs
MAC Address: 00:03:47:6D:28:D7 (Intel)
Nmap finished: 1 IP address (1 host up) scanned in 2.276 seconds
Raw packets sent: 1674 (66.9KB) | Rcvd: 1655 (76.1KB)
#


Os resultados são exibidos como (open|filtered) pois não há como se ter certeza de que não haja um firewall realizando o DROP nas portas verificadas. Outros métodos podem ser utilizados para verificar o real estado das portas.

XMAS Tree Scan (-sX)

Funciona da mesma forma que o FIN Scan, com a diferença de que as flags setadas são as URG e PUSH. Os resultados exibidos são similares ao do FIN Scan.

Null Scan (-sN)

Funciona da mesma forma que o FIN Scan, com a diferença de que nenhuam flag é setada para esse método de varredura. Os resultados exibidos também são similares ao do FIN Scan.

Dentre as vantagens destes métodos de varredura se destaca o fato de estes serem os métodos menos invasivos, não gerando nenhuma entrada nos logs do dispositivo verificado.

Infelizmente a Microsoft não segue os padrões definidos em RFC para o protocolo TCP/IP por isso para essas formas de verificação todas as portas, independente de seu estado, vão constar como fechadas. Portanto esses métodos se mostram ineficazes em hosts com windows.
Em contrapartida estações que exibem portas como open|filtered de certo não são estações baseadas em windows, facilitando o processo de identificação do SO.

Ping Scan (-sP)

O Ping Scan é um dos métodos de varredura mais rápidos do Nmap uma vez que nenhuma porta é verificada. Este método é útil para detectar hosts ativos e para verificar se o protocolo ICMP está trafegando através de determinado firewall.

Version Detection (-sV)

Enquanto a maioria dos métodos do Nmap se destina a identificar o número das portas, o método Version Detection se preocupa em identificar a versão dos serviços rodando no host remoto.
Para este método funcionar o Nmap precisa do arquivo nmap-service-probes que no Ubutu encontra-se em /usr/share/nmap/nmap-service-probes. Se este arquivo não estiver presente o método não irá funcionar.
O método de verificação de versão deve ser utilizado com outro tipo de scan para detectar as portas abertas. Se nenhum outro tipo de scan foi especificado o TCP SYN Scan é utilizado por padrão.
A vantagem de se utilizar o método acima é estar sempre ciente das versões dos serviços rodando em sua rede para mantê-los sempre atualizados.

UDP Scan (-sU)

No UDP Scan, de acordo com as definições do próprio protocolo, não há "handshaking". Os pacotes são enviados e recebidos sem aviso, simplificando o processo processo de varredura.

IP PROTOCOL Scan (-sO)

O Protocol Scan é diferente dos demais, esse método se destina a identificar protocolos IP adicionais no host remoto como ICMP, TCP e UDP.
A principal função do IP protocol é identificar a função do host remoto na rede, uma vez que quando um roteador é scaneado por exemplo, protocolos adicionais podem ser exibidos como o EGP ou IGP.

ACK Scan (-sA)

O método ACK Scan não se destina a descobrir portar abertas mas em definir o estado de "filtered" ou "unfiltered" uma vez que não há conexão para verificar o estado da porta. O ACK Scan nos provê a capacidade de verificar se determinado pacote pode ou não atravessar um firewall ou um link com filtro de pacotes.

Windows Scan (-sW)

O Windows Scan tem seu esse nome devido a definição de janelas no TCP e não devido ao Sistema Operacional da Microsoft. Este método é similar ao ACK Scan com o diferencial de descobrir se existem ou não portas abertas no host remoto.

RPC Scan (-sR)

O RPC Scan é utilizado para localizar e identificar serviços RPC. Depois de identificar as portas abertas com qualquer outro método de varredura o RPC Scan envia a cada porta um RPC Null para gerar uma resposta da aplicação RPC a fim de determinar o serviço RPC. O RPC Scan é executado automaticamente quando um Version Detection Scan (-sV) é executado.

LIST Scan (-sL)

O List Scan não é realmente uma varredura, mas provê ao nmap a capacidade de testes e de "troubleshooting". Esse método apenas lista os IPs que normalmente seriam scaneados.

IdleScan (-sI )

O IdleScan é uma forma engenhosa de se colher informações utilizando outra estação da rede, aparentando que outra estação iniciou o processo de varredura. Consulte a fonte indicada no final deste artigo para maiores informações a respeito do funcionamento deste excepcional método de varredura.

FTP Bounce Attack (-b )

O FTP Bounce Attack utiliza uma falha em servidores FTP para realizar sua varredura. Como o IdleScan este método utiliza um terceiro host na realização do scan. Para maiores informações a respeito do FTP Bounce Attack acesse o link http://www.insecure.org/nmap/hobbit.ftpbounce.txt.

Neste artigo foram descritas os principais métodos de varredura realizados pelo Nmap. Para maiores informações a respeito do funcionamento de cada método e informações detalhadas a respeito do Nmap acesse o excelente material disponibilizado por James Messer em seu site que foi usado como fonte para este artigo, lá você irá encontrar informações bem mais detalhadas a respeito dessa poderosa ferramenta.

http://www.networkuptime.com/nmap/index.shtml

Grande abraço.

sexta-feira, 28 de agosto de 2009

Windows 7 Sins

A Free Software Foundation lançou a campanha "Windows 7 Sins" com argumentos mais do que convincentes contra o M$ Windows que vêm por ai.
Vale a conferida.

http://windows7sins.org/

Grande abraço.

quarta-feira, 26 de agosto de 2009

Como implementar SPF em um servidor Postfix

A maioria das mensagens abusivas de emails têm falsos remetentes. Neste momento alguém pode estar forjando um email de sua empresa para enviar mensagens abusivas a terceiros. Mas há uma forma de se protejer desses abusos utilizando o SPF.

O SPF é a sigla de Sender Policy Framework que define o conjunto de regras para prevenir a falsificação do endereço do remetente.

O SPF funciona da seguinte forma:

Inicialmente o administrador do domínio deve publicar em seu DNS as informações pertinentes a sua política de envio de email, que nada mais é do que informar aos demais servidores de correio com suporte a SPF quais são os endereços que podem enviar mensagens cuja a origem seja o seu domínio.

Para publicar as informações referentes a sua política de envio de email você deve ter um servidor de DNS funcionando. Se você ainda não possui um servidor de DNS existem inúmeros tutoriais disponíveis na internet para este fim.

Seguem alguns exemplos de publicação de SPF que deve estar em seu arquivo de zona de DNS.

EX01.

IN TXT "v=spf1 ip4:200.200.200.200/32 -all"

Onde:

v=spf Significa a versão (Sendo a SPFv1 a mais atual)
ip4:200.200.200.200/32 Significa que o ip 200.200.200.200 pode enviar emails por esse domínio.
-all Significa que os demais endereços não podem enviar email por esse domínio.

EX02.

IN TXT "v=spf1 mx -all"

v=spf Significa a versão do SPF
mx Significa que todos os registros MX publicados no DNS do domínio podem enviar email por esse domínio.
-all Significa que os demais endereços não podem enviar email por esse domínio.

Para uma sintaxe completa da publicação da política de email acesse:

http://www.openspf.org/SPF_Record_Syntax

Você pode ainda verificar como os demais servidores estão publicando suas políticas de envio de email, lembrando que nem todos os servidores utilizam SPF, mas com o número crescente de emails falsos o SPF vem se tornando padrão em todas as empresas que querem garantir a autenticidade de seus emails. Você pode consultar as políticas de email conforme os comandos abaixo:

host -C (Domínio a ser verificado)

EX.

alexandre@destroyer:~$ host -C terra.com.br
Nameserver ns2.terra.com.br:
terra.com.br has SOA record dns.terra.com.br. sysadm.terra.com.br. 2009082706 7200 7200 2419200 7200
Nameserver ns1.terra.com.br:
terra.com.br has SOA record dns.terra.com.br. sysadm.terra.com.br. 2009082706 7200 7200 2419200 7200

O comando informa quais são os servidores de DNS SOA para o domínio informado. Para consultar as entradas de SPF do domínio entre com o comando abaixo:

dig @(Servidor do domínio) (Domínio a ser verificado) (Tipo da Consulta)

EX.

alexandre@destroyer:~$ dig @ns1.terra.com.br terra.com.br TXT

; <<>> DiG 9.5.1-P2 <<>> @ns1.terra.com.br terra.com.br TXT
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37087
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;terra.com.br. IN TXT

;; ANSWER SECTION:
terra.com.br. 7200 IN TXT "v=spf1 ip4:200.176.10.0/23 ip4:200.176.2.0/23 ip4:200.154.152.0/24 ip4:208.84.242.0/23 include:tmp-spf.terra.com.br include:ti-spf.terra.com.br include:te-spf.terra.com.br -all"

;; AUTHORITY SECTION:
terra.com.br. 7200 IN NS ns1.terra.com.br.
terra.com.br. 7200 IN NS ns2.terra.com.br.

;; ADDITIONAL SECTION:
ns1.terra.com.br. 7200 IN A 200.176.2.172
ns2.terra.com.br. 7200 IN A 200.176.2.173

;; Query time: 129 msec
;; SERVER: 200.176.2.172#53(200.176.2.172)
;; WHEN: Fri Aug 28 09:37:41 2009
;; MSG SIZE rcvd: 287


A parte em negrito da resposta ao comando informa a configuração de SPF do servidor em questão. Adapte esta consulta para analisar as configurações de outros domínios.

Com esse passo concluído os demais servidores podem verificar a sua política de email e verificar a autenticidade dos emails recebidos de seu domínio. Resta agora configurar nosso servidor para verificar as políticas de email dos demais servidores.

Existem alguns patches e extensões disponíveis para o Postfix que exigem que o postfix seja recompilado, neste artigo utilizaremos o postfix-policyd-spf-perl que pode ser encontrado em http://www.openspf.org/Software ou no repositório padrão dos servidores Ubuntu.
Este aplicativo trata-se de um pacote perl que pode ser implementado em instalações já existentes de postfix.

A instalação foi realizada em um servidor Ubuntu 8.10.

Inicialmente instale o pacote
postfix-policyd-spf-perl e suas dependências conforme a baixo:

apt-get install
postfix-policyd-spf-perl


Após a instalação edite o arquivo /etc/postfix/masters.cf e adicione a linha abaixo:

[...]
policy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/sbin/policyd-spf-perl

O próximo passo é editar o arquivo /etc/postfix/main.cf no parâmetro smtpd_recipient_restrictions conforme abaixo:

[...]
smtpd_recipient_restrictions =
[...]
reject_unauth_destination
check_policy_service unix:private/policy
[...]
[...]


IMPORTANTE:

Você deve especificar reject_unauth_destination sempre antes de check_policy_service ou seu servidor de correio pode se tornar um Open Relay.

Para maiores informações sobre os parâmetros de configuração do Postfix acesse http://www.postfix.org/postconf.5.html

Feito isso reinicie seu servidor Postfix

/etc/init.d/postfix restart

Pronto... seu servidor já está configurado para verificar os registros SPF de outros servidores, confira no seu arquivo de log do postfix para verificar o funcionamento do SPF. Os logs são bem diretos e você não precisará de muito tempo para entender as entradas no arquivo de log.Para entender o funcionamento do SPF confira a documentação instalada.

Para maiores informações consultem os links abaixo que serviram de base para este artigo.

http://www.openspf.org/
http://www.postfix.org/postconf.5.html
http://www.howtoforge.com/postfix_spf

terça-feira, 25 de agosto de 2009

Listar compartilhamentos no M$ Windows.

Quer listar compartilhamentos de estações/Servidores com o M$ windows no linux? Fácil...

smbclient -L nome-da-máquina -U usuário -W domínio/grupo-de-trabalho

Logo após entre com a senha do usuário. Se você precisar entrar diretamente com a senha na linha de comando para scripts ou afins basta adicionar a senha a linha acima conforme abaixo:

smbclient -L nome-da-máquina -U usuário%senha -W domínio/grupo-de-trabalho


Grande abraço.

segunda-feira, 24 de agosto de 2009

Utilizando o Evolution como cliente do exchange 2007 com a extensão evolution-MAPI

Para a visualização dos emails recebidos pelo servidor exchange 2003 aqui da empresa eu utilizava a extensão evolution-exchange que fazia uso do OWA para acesso aos emails. Após a migração do Exchange para a versão 2007 este recurso parou de funcionar tive de acessar meus emails via web até descobrir o uso da extensão evolution-mapi.

A extensão encontra-se disponível nos repositórios do Ubuntu 9.04 e para instalá-la basta entrar com o comando abaixo:

apt-get install evolution-mapi

Caso o evolution esteja aberto feixe-o e abra o aplicativo novamente.

Para configurar sua conta através do evolution-mapi siga os passos abaixo:

Abrir o evolution --> Editar --> Preferências --> Adicionar/Editar



Clique em Avançar



Preencha o campo identidade com suas informações pertinentes.



Após a instalação do exchange-mapi a opção Exchange MAPI é exibida no tipo de servidor conforme imagem acima. Em alguns casos ao se utilizar o FQDN ao se referenciar ao servidor ocorrem erros inesperados, mas esses erros não ocorrem caso se utilize o ip do servidor. Portanto entre com o ip do servidor e as demais informações de sua conta conforme a imagem acima.



Para ter acesso a GAL preencha o campo acima conforme seu domínio.

A extensão exchange-mapi ainda é um pouco lenta na checagem das mensagens no servidor, mas para quem é como eu que não abre mão de utilizar softwares livres mesmo em um ambiente misto, é uma mão na roda.

Instalando o Bandwidthd no Ubuntu Server 8.10

O Bandwidthd mostra a utilização de banda da rede através de relatórios com gráficos para serem visualizados através de seu web browser.

Siga os passos abaixo para a instalação do Bandwidthd no seu Ubuntu Server.

apt-get install bandwidthd

O instalador vai solicitar as informações referentes a que subredes e que interfaces devem ser monitoradas. Responda as perguntas de acordo com o seu ambiente.

O arquivo responsável para configuração do Bandwidthd encontra-se em:

/etc/bandwidthd/bandwidthd.conf

Ao se abrir o arquivo de configuração você encontrará as informações dadas durante a instalação que podem ser alteradas manualmente, mas a opção a ser verificada é a htdocs_dir que informa onde os relatórios html serão gerados.

Pressupondo que você já tem o apache instalado e não utiliza virtualhosts aponte a geração dos relatórios para /var/www.

O Bandwidthd adiciona um script para controle do serviço em /etc/init.d/bandwidthd

Após a configuração do diretório reinicialize o serviço do Bandwidth com o comando:

service bandwidth restart
ou
/etc/init.d/bandwidth restart

Agora aponte seu navegador para http://ip-do-servidor ou nome-do-servidor para visualizar a página inicial com as informações de utilização de banda em sua rede.

Para mim o principal uso desta ferramenta é mostrar aos clientes o uso de banda de forma mais amigável através de gráficos uma vez que prefiro utilizar ferramentas em modo texto como o iftop para verificação de banda em tempo real.

Para maiores informações sobre o Bandwidthd acesse o site:
http://bandwidthd.sourceforge.net/

Primeiro Post

Olá, Esse é o meu primeiro post deste blog.
Aqui vou postar informações referentes a TI, principalmente sobre Linux e de como integrar o mesmo com outros sistemas operacionais.
Um grande abraço a todos.