Posts Tagged ‘ unix

Metasploit + PostgreSQL 9.0 no Snow Leopard

Depois de muito pesquisar, consegui achar a solução mais elegante para instalar o Metasploit com PostgreSQL no Snow Leopard sem muitas gambiarras, então fica o guia pros amigos que quiserem fazer o mesmo.

Vamos por partes. Você vai precisar do git já instalado, para começar. Acredito que ele venha por padrão com o Snow Leopard, mas se não tiver, baixe em http://git-scm.com/download e instale.
Também é necessário ter a versão mais recente da tollchain da Apple (XCode et al). Baixe em http://devworld.apple.com/technologies/tools/.

Também é importante desisntalar o fink e o macports, caso tenha eles instalados, bem como tudo instalado por eles. Não se preocupe, depois você pode instalar tudo denovo com o Homebrew.

Agora vamos começar com o rvm.

rvm, Ruby Version Manager, é exatamente isso. Ele te permite instalar mais de uma versão do ruby no seu computador, sem gambiarras, limitado a uma espécie de sandbox fácil de ser removida, além de facilitar a troca de versões.

bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Siga as instruções do instalador, depende da shell que você usa (eu uso zsh).

Agora instale os pacotes para o ruby com o rvm:

rvm package install readline
rvm package install iconv
rvm package install zlib
rvm package install openssl

Agora instale o ruby-1.9.2-p0, que é atualmente a melhor versão para rodar o Metasploit.

rvm install 1.9.2 -C --with-readline-dir=$HOME/.rvm/usr --with-iconv-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr --with-openssl-dir=$HOME/.rvm/usr

Espere terminar, deve demorar um bocado, dependendo do teu sistema.
Agora vamos usar o 1.9.2 como default.

rvm 1.9.2 --default

Caso você deseje voltar para o ruby que veio com o sistema,

rvm system

o –default é opcional e torna ele o ruby padrão para novas shells.
Vamos ficar com o 1.9.2 agora.

Vale lembrar que com o rvm você não usa sudo em momento algum.

Agora vamos instalar o homebrew.
O Homebrew é um gerenciador de pacotes para o OSX que se integra lindamente ao sistema e usa a toolchain da Apple para compilar os programas, ao invés de instalar tudo do zero e fazer uma bagunça, como o macports ou o fink.

ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"

Pronto, Homebrew instalado. Fácil, não?

Agora instalemos o PostgreSQL 9.0.

brew install postgresql

Podia ser mais fácil? Acho que não. Ele deve instalar o readline como dependência, mesmo você tendo instalado com o rvm. Não tem problema, é assim mesmo. Deste jeito temos certeza de que não há conflitos entre os headers por causa de patches de um gerenciador ou o outro.
Vá lá buscar um café porque isso demora um bocado também, ele vai compilar todo o Postgres.

Terminado isso, o homebrew já cria um superuser no PostgreSQL para ti, com o teu nome de usuário atual e senha.

Agora, criar um usuário pro Metasploit.

createuser msf_user -P

Dê uma senha para o usuário e responda não para as três perguntas.

Crie um banco de dados:

createdb --owner=msf_user msf_database

Pronto, agora vamos instalar o Metasploit.

Primeiro, a gem do Postgre.

gem install pg

Sem sudo!

Vá até www.metasploit.com/framework/download/ e baixe o tarball mais recente (o arquivo .tar.bz2)

Descompacte o arquivo e mova ele para /opt:

tar xvjf framework-3.4.1.tar.bz2
sudo mv msf3 /opt/metasploit

sudo chown -R $USER:$USER /opt/metasploit
sudo ln -sf /opt/metasploit/msf* /usr/local/bin/

Criemos um script para atualizar o metasploit pelo svn.
Com o seu editor favorito (vim, por favor) crie /usr/local/bin/msfupdate

#!/bin/sh
/usr/bin/svn update /opt/metasploit

Dê permissão de execução para o arquivo

sudo chmod 777 /usr/local/bin/msfupdate

Rode msfupdate para atualizar o framework e rode msfconsole para iniciar o metasploit.

msf> db_driver postgresql
msf> db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
msf> db_hosts

Agora edite seu ~/.msf3/msfconsole.rc para iniciar a db automaticamente cada vez que você iniciar o metasploit.

db_driver postgresql
db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
db_workspace -a MyProject

Rode o msfconsole mais uma vez para ter certeza de que tudo funcionou e seja feliz.

sudo bang bang

É triste, mas até meus professores na faculdade pronunciam errado, então vai um guiazinho rápido de como ler os comandos do Unix.

sudo !!sudo bang bang (“!!” repete o último comando da shell)

ls -las - éle-ésse tack las ou éle-ésse menos las

#! - shebang

$ - bling

%bond (é os dois zeros em cima do 7, get it?)

&amper ou ampersand

<wakka (é o som que o pacman faz)

*splat (star para as meninas)

?hook

[Fonte: documento do Eric Raymond]

Pronto, agora vocês são ligeiramente mais cultos.

Guia rápido de manutenção de servidores por ssh

O ssh (secure shell) já salvou a minha vida mais de uma vez. É muito mais prático do que FTP quando se quer fazer alterações nos arquivos do servidor e não é necessário subir ou baixar nenhum arquivo. Além disso, existe o sshfs, que é uma grande facilidade para nós usuários do Linux, que podemos montar uma pasta ssh como se fosse um sistema de arquivos local, e ter todo o conforto de editores de texto gráficos e bonitinhos 100% online.

Abalone shell
Crédito da foto: Stryker W@SP

Ela provê uma conexão segura e encriptada a um servidor remoto, e te dá uma shell completa do sistema hospedeiro, que normalmente é unix. Conhecer a linha de comando então é mais que uma mão na roda, é obrigatório. Mas muita gente não vai muito longe do ls, cd, pwd, rm, mv.

Existem dois truques que eu uso muito em todos os sites que eu administro, e realmente facilitam muito a minha vida.

Imagina a situação: no teu site tem uma centena ou mais de arquivos de backup, simples cópias de segurança de arquivos, de antes de serem modificados, e você não precisa mais deles. Sempre ouvimos que é uma boa prática nesses casos simplesmente fazer uma cópia do arquivo, adicionando .bak ao fim do nome, mas ninguém nunca nos diz porque. Esse primeiro truque é justamente para tirar proveito disso. Tendo todos os teus arquivos de backup terminando em .bak, não importa quão espalhados eles estejam na árvore de diretórios, basta rodar este comandinho:

find . | grep .bak | xargs rm

(Antes que os xiitas venham reclamar, sim, dá pra juntar o find com um grep, mas o grep é mais rápido que o find para esse caso.)

Explicando por partes: Cada “|” (chamado de pipe) concatena comandos, passando a saída de um comando para o próximo. O primeiro comando, find ., lista recursivamente todos os arquivos do diretório atual. A saída é passada para o grep, que procura nessa lista por arquivos que contenham a expressão .bak no nome (e é uma boa rodar só os dois primeiros comandos para ter certeza de que não tá aparecendo nada extra aí). Por fim, temos o todo-poderoso xargs, que tem mais usos do que o próprio Stallman conhece, executa o comando rm em cada nome desta lista.

A segunda situação é quando precisamos fazer uma faxina no servidor, mas não sabemos o que diabos está pesando 1,5GB. Isso é facilmente resolvido com este lindo comando:

du -ch

(É fácil de lembrar dele, lê “duch”, que soa a “douche”, um xingamento em inglês).

Este comando vai também listar recursivamente todos os diretórios (mas só eles, não os arquivos), e te dar o tamanho de cada um, e o total da pasta atual no fim. Extremamente útil.

Reinventando a roda

A Microsoft adora copiar criar novos conceitos.PnP
Todos sabem que o suporte Plug And Play no windows é capenga. Ele depende de drivers para absolutamente tudo, cada pendrive que você espeta, lá é um driver novo (muitas vezes igualzinho) a ser carregado pro sistema. O Vista já vem com 19 mil drivers, por causa disso.

Recentemente eles registraram uma patente inovadora pra resolver isso. Que tal, ao invés de usar drivers genéricos como os sistemas Unix, jogar a responsabilidade para as fabricantes de hardware e fazer com que elas incluam uma memória flash padrão em seus dispositivos contendo os drivers?

O Linux resolve o problema dos drivers com os genéricos, que funcionam bem para tudo, e só precisam ser carregados uma vez, não importa quantos dispositivos parecidos se tenha. Os mesmos drivers da nvidia funcionam com qualquer placa da série. Pen drives simplesmente usam o driver (ou melhor, módulo) de usb mass storage.

Ao invés, então, da Microsoft investir em algo assim para ela, é muito mais barato eles investirem em um padrão para os outros.

Acredito que seria uma idéia interessante se não houvessem outras soluções mais elegantes.
Claro que não há como tirar o máximo de um hardware com drivers genéricos. Os drivers da Nvidia que eu falei há pouco são atualizados com freqüência, justamente para suportar placas mais novas. Mas os drivers genéricos nv vão suportar qualquer placa nvidia, só o suficiente para poder pegar os drivers de algum lugar, seja a internet, ou um CD, mas suportam.

Já pen drives e afins não têm muito o que inovar em drivers. Um pen drive kingston, um xingling ou um psp e mass storage funcionam essencialmente do mesmo modo.

É a Microsoft reinventando a roda mais uma vez. E querem que ela seja quadrada, parece.

Configurando servidores no Fedora

O Fedora é um excelente sistema para servidores, mas algumas pessoas têm dificuldades para instalar os pacotes necessários e configurar corretamente os serviços para rodar os mais diversos servidores. Aqui tem algumas dicas de como fazer isso.

Antes de tudo, utilitários gráficos para gerenciar os servidores:

yum install system-config-users system-config-services

Apache (com PHP)

yum install php httpd system-config-httpd mod_ssl
/sbin/chkconfig httpd on
/sbin/service httpd restart

MySQL

yum install mysql-server mysql-administrator mysql mysql-gui-common
/sbin/chkconfig mysqld on
/sbin/service mysqld restart

E, se você quiser suporte a MySQL no PHP:

yum install php-mysql

Configuração: (Substitua novasenha por uma senha boa)

mysql -u root
Você deve estar vendo um prompt escrito mysql>
SET PASSWORD FOR ”@’localhost’ = PASSWORD(‘novasenha‘);
SET PASSWORD FOR ”@’localhost.localdomain’ = PASSWORD(‘novasenha‘);

VNC

yum install xinetd vnc vnc-server
/sbin/chkconfig vncserver off
/sbin/chkconfig xinetd on

Configuração:

gedit /etc/xinetd.d/vnc1024

Cole isto no arquivo:

service vnc1024
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query 127.0.0.1 -geometry 1024×768 -depth 24 -once -fp unix/:7100 -securitytypes=none
}

E mais este arquivo:

gedit /etc/xinetd.d/vnc1024x8

Cole isto:

service vnc1024x8
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query 127.0.0.1 -geometry 1024×768 -depth 8 -once -fp unix/:7100 -securitytypes=none
}

Agora configure o GDM para XDMCP:

gdmsetup

Desmarque “Recusar Conexões TCP ao XServer”
Desmarque “Permitir login remoto de administrador”

Agora vá até a aba “Remoto” e:
Mude a caixa de seleção superior de “Saudação Remota” para “Igual à Local”
Clique em “Configurar XDMCP”
Clique em “Honrar Requisições Indiretas”

Agora vá até a aba “Acessibilidade” e desmarque “Habilitar Acessibilidade de Login”.

Agora feche o gdmsetup e edite o arquivo /etc/services, adicionando as seguintes linhas ao final dele:

vnc1024 5900/tcp # VNC & GDM
vnc1024x8 5901/tcp # VNC & GDM

Abra as portas 5900 e 5901 TCP e 177 UDP às permições de seu firewall e reinicie o X.

SSH

yum install openssh openssh-clients openssh-server pam_ssh pam_abl
/sbin/chkconfig sshd on
/sbin/service sshd restart

Configuração:
Abra o arquivo /etc/ssh/sshd_config

Mude

PermitRootLogin yes

Para

PermitRootLogin no

(Por questões de segurança)

SMB

yum install system-config-samba samba-client samba-common samba system-config-samba system-config-users

Toda a configuração é feita através do utilitário gráfico:

system-config-samba

Em Configurações do Servidor:
Na aba “Básico”:
–> Grupo: mshome
–> Descrição: Qualquer coisa funciona aqui.

Na aba “Segurança”:
–> Modo de autenticação: Usuário
–> Conta de visitante: Desabilitado
–> Encriptar senhas: Sim

Em Usuários, no menu:
–> Adicione usuário
–> Escolha o usuário e senha no Windows.

Agora para compartilhar:
–> Clique em “Adicionar Compartilhamento”
–> Escolha o nome do compartilhamento e uma descrição e as permições.

Adicione as portas do Samba no seu Firewall. No Fedora 8, está logo na primeira aba com o nome bem sugestivo de “SAMBA”.

FTP

yum install system-config-vsftpd vsftpd system-config-users

Configuração:

system-config-vsftpd

Bom, espero que isso tenha ajudado vocês a começarem a brincar com alguns dos servidores do Fedora.
Live Free.

 
SEO Powered by Platinum SEO from Techblissonline