sábado, 30 de abril de 2011

Tunelamento SSH

O Secure Shell ou SSH. É simultaneamente, um programa de computador e um protocolo de rede que permite a conexão com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do telnet, com a vantagem da conexão entre o cliente e o servidor ser criptografada.O SSH oferece um serviço de Túnel o mesmo tem como finalidade o acesso ligando uma das portas da sua máquina à porta do servidor onde o serviço em questão está ativo. Nesse caso, é criada uma espécie de VPN temporária, através da qual é possível acessar o serviço de forma segura.Todas as informações transmitidas são encriptadas pelo SSH.
Segue alguns exemplos de utilização do Túnel SSH:

Como estabelecer um tunnel atraves do SSH


ssh -N -f -L LPORT:DHOST:DPORT usuario@$IPSRV
ssh -N -f -D LPORT usuario@$IPSRV

-N para não executar nenhum comando no servidor remoto
-f para enviar o comando para o background
-L para especificar que sera criado um tunnel local
-D para especificar que sera criado um tunnel dinamico (socks)

IPSRV="ip_do_servidor"
LPORT="porta local"
DHOST="host destino"
DPORT="porta destino"

Exemplos:

1) Se você utiliza o VNC para tarefas sensíveis, como administrar servidores, acessar sistemas bancários, etc., pode implantar uma camada extra de segurança, utilizando o VNC em conjunto com o SSH. Nesse caso, a segurança é quase total, pois além de ser necessária uma dupla autenticação (primeiro no SSH e depois no VNC), todos os dados são transmitidos através da rede de forma encriptada, utilizando um algoritmo reconhecidamente seguro.

Criamos um tunnel para a maquina com IP 192.168.254.93 que esta dentro da rede do cliente.

export IPSRV="200.182.206.2"
export LPORT="5900"
export DHOST="192.168.254.93"
export DPORT="5900"

ssh -L -N -f $LPORT:$DHOST:$DPORT brc@$IPSRV

A partir dai configuramos o cliente VNC para estabelecer uma conexão com 127.0.0.1
Esta conexão sera redirecionada através da conexão SSH e chegará no DHOST:DPORT especificado.

vinagre 127.0.0.1:5900

2º) NMAP scan


Devemos considerar o uso de "nmap -sT" com o "proxychains". Simples assim:

export LPORT="1080"
export IPCLI="192.168.254.93"
export IPSRV="200.182.206.2"

ssh -N -f -D $LPORT brc@$IPSRV
proxychains nmap -sT -p NN $IPCLI
proxychains nmap -sT -PO -p 80 -iR $IPCLI

Edite o arquivo proxychains.conf para especificar o proxy "SOCKS".

vi /etc/proxychains.conf
socks5 127.0.0.1 1080

Post do meu grande amigo Caderno.

Gerenciamento de Disco Windows 7

Me rendeu ao menos 1 min de googlada para saber como iniciar o Gerenciamento de disco no Win 7, então: iniciar > executar > diskmgmt.msc

Comando tcpdump - exemplos de uso

Monitorando as conexões pela interface eth0 com destino ao host 192.168.210.201 sem resolver nomes ou portas:

# tcpdump -i eth0 dst 192.168.210.201 -nn
09:23:09.826907 IP 192.168.210.5.22 > 192.168.210.201.2210: P 188964:189112(148)
ack 833 win 8576
09:23:09.826958 IP 192.168.210.5.22 > 192.168.210.201.2210: P 189112:189260(148)
ack 833 win 8576

Monitorando as conexões pela interface eth0 com origem do host 192.168.210.201 e com destino o host 192.168.210.5 sem resolver nomes ou portas:


# tcpdump -i eth0 src 192.168.210.201 and dst 192.168.210.5 -nn
09:24:42.805222 IP 192.168.210.201.2210 > 192.168.210.5.22: . ack 1005731904 win
65287
09:24:43.003885 IP 192.168.210.201.2210 > 192.168.210.5.22: . ack 133 win 65155

Monitorando as conexões pela interface eth0 com origem do host 192.168.210.201 e com destino o host 192.168.210.5, MENOS a porta 22 (ssh), sem resolver nomes ou portas:

# tcpdump -i eth0 src 192.168.210.201 and dst 192.168.210.5 and not port 22 -nn
09:27:40.065359 IP 192.168.210.201.2346 > 192.168.210.5.98: . ack 3794525559 win
64846
09:27:40.232109 IP 192.168.210.201.2346 > 192.168.210.5.98: F 0:0(0) ack 1 win
64846

Monitorando as conexões pela interface eth0 tanto origem como destino o host host 192.168.210.201:

# tcpdump -i eth0 host 192.168.210.201 -nn
09:28:12.404899 IP 192.168.210.5.22 > 192.168.210.201.2210: P
2104076:2104224(148) ack 9465 win 16080
09:28:12.404943 IP 192.168.210.5.22 > 192.168.210.201.2210: P
2104224:2104372(148) ack 9465 win 16080

Monitorando as conexões pela interface eth0 com origem do host 192.168.210.201 e com destino o host 192.168.210.5, MENOS a porta 22 (ssh), sem resolver nomes ou portas e inserindo a saída do comando no arquivo log_tcpdump (no diretório corrente):

# tcpdump -i eth0 src 192.168.210.201 and dst 192.168.210.5 and not port 22 -nn -w log_tcpdump
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 68 bytes
^C7 packets captured
7 packets received by filter
0 packets dropped by kernel
# ls
log_tcpdump

Monitorar conexões entrantes / saintes na porta 80 (http) na interface eth0 (ao não especificar device de escuta "-i ethX", por padrão a interface eth0 é escutada):

# tcpdump port 80
09:37:00.589858 IP 5b.16.344a.static.theplanet.com.http >
master.ctberrini.com.br.46682: P 814487551:814488703(1152) ack 4015645779 win 1758
09:37:00.664095 IP master.ctberrini.com.br.46682 >
5b.16.344a.static.theplanet.com.http: . ack 1152 win 0
09:37:01.830973 IP 5b.16.344a.static.theplanet.com.http >
master.ctberrini.com.br.46682: . ack 1 win 1758

sexta-feira, 29 de abril de 2011

Exemplos úteis de uso do comando find

Algumas opções do comando find.

Procurando o arquivo rita_cadillac.wmv dentro da partição /media/dados_:

$ find /media/dados_/ -name rita_cadillac.wmv -print
/media/dados_/por/rita_cadillac.wmv

Procura e deleta o(s) arquivos teste.txt dentro do home do usuário lsantos:

$ find /home/lsantos/ -name teste.txt -exec rm -vf {} \;
removido `/home/lsantos/teste.txt'
removido `/home/lsantos/Imagens/teste.txt'

Procura no diretório corrente arquivos modificados a 2 dias (mtime = modification time, quantos dias o conteúdo foi modificado):

$ find . -mtime 2 -print:
./var/log/samba
./var/log/samba/log.smbd.1.gz
./var/log/samba/log.nmbd.1.gz
./var/log/samba/log.winbindd.1.gz
./var/log/dmesg.3.gz
./var/log/daemon.log.1

Procura no /home todos os arquivos do usuário coxinha:

$ find /home/ -user coxinha -print
/home/coxinha
/home/coxinha/.bash_logout
/home/coxinha/.profile
/home/coxinha/projetos
/home/coxinha/projetos/word_end.sh
/home/coxinha/examples.desktop
/home/coxinha/.bashrc

Procura em todo o sistema arquivos com a extensão .doc e .conf:

$ find / -name '*.doc' -o -name '*.conf' -print
/etc/hdparm.conf
/etc/ld.so.conf.d/libc.conf
/etc/ld.so.conf.d/GL.conf
/etc/ld.so.conf.d/i486-linux-gnu.conf
/etc/ld.so.conf.d/libasound2.conf
/etc/samba/smb.conf
/etc/samba/dhcp.conf
/etc/mke2fs.conf
/etc/logrotate.conf
/etc/usplash.conf
/etc/gtk-2.0/im-multipress.conf
/etc/resolv.conf
/etc/brltty.conf

Procura no diretório corrente arquivos maiores que 2MB (2048kb):

$ find . -size +2048 -print
./lsantos/.local/share/Trash/files/Texas.zip
./lsantos/.local/share/Trash/files/Texas.jar
./lsantos/.local/share/Trash/files/09.2010.PLAYBA.Larissa.Riquelme.rar
./lsantos/.local/share/Trash/files/TBOAL.By.Amy_www.BestUnioM.Net.rar
./lsantos/.cache/google-chrome/Cache/data_2
./lsantos/.cache/google-chrome/Cache/data_3

Procura em todo o sistema arquivos que pertençam ao grupo kaluptoff:

$ find / -group kaluptoff -print

Procura no diretório corrente arquivos que não foram acessados a mais de 10 dias (atime = acess time - quanto tempo o arquivo não foi acessado):

$ find . -atime +10 -print | head
./lsantos/.dbus/session-bus/6fc608e49d3903580c4c5e3d4c23eebc-0
./lsantos/.local/share/gvfs-metadata/archive:host=file%253A%252F%252F%252Fmedia%252F300%252Fcursos-tutos%252Fvideo_aulas%252Fwordpress%252FWordpress%252520Volume%2525201.iso
./lsantos/.local/share/gvfs-metadata/label-filmes-c975e37a.log

Para saber quantas fotos (.jpg) existem no diretório /home/lsantos/Imagens:

$ find /home/lsantos/Imagens/ -iname "*.jpg" | wc -l
8

Exemplos de uso do comando SCP

Dicas úteis de como fazer uso deste poderoso programa para transferência de arquivos:

Considere:

Máquina 1:

192.168.254.92
Usuário: lsantos

Máquina 2:

192.168.254.156
Usuário: tux

Vamos lá!

1. Copiar o arquivo "teste" na máquina 2 que está dentro do diretório /home/tux/Images para a máquina 1 dentro de /home/lsantos/dir_teste/:
$ scp tux@192.168.254.156:/home/tux/Images/teste /home/lsantos/dir_teste/

$ cd /home/lsantos/dir_teste/
$ ls
teste

2. Enviando o arquivo "arquivo.txt" da máquina 2 para a máquina 1 (ao não especificar um caminho de destino para o arquivo o mesmo irá para o diretório /home do usuário utilizado no login):


$ scp arquivo.txt lsantos@192.168.254.92:

(máquina 1)

$ pwd
/home/lsantos
$ ls -l arquivo.txt
-rw-r--r-- 1 lsantos lsantos 0 2009-10-29 14:52 arquivo.txt

3. Enviando o arquivo "megaupload" da máquina 1 para a máquina 2 dentro de /home/tux/Public:

$ scp megaupload tux@192.168.254.156:/home/tux/Public

4. Supondo que a máquina que você precisa enviar o arquivo esteja com o serviço ssh em uma porta específica, utilizamos o parâmetro -P:

$ scp -P 6969 megaupload tux@192.168.254.156:/home/tux/Public

5. É possível também habilitar o modo verbose para debugar a conexão:

$ scp -vP 6969 megaupload tux@192.168.254.156:/home/tux/Public
Executing: program /usr/bin/ssh host 192.168.254.156, user tux, command scp -v -t /home/tux/Public
OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.254.156 [192.168.254.156] port 6969.
*
*
*
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 1672, received 1272 bytes, in 0.1 seconds
Bytes per second: sent 25937.0, received 19732.0
debug1: Exit status 0