segunda-feira, 29 de setembro de 2008

O Nmap

Bom dia!! (estou quase morrendo de gripe aqui.. mas blz!!)

Hoje falarei um pouco sobre o Portscan Nmap. Acho que a maioria das pessoas que mexem ou já mexeram um pouco com redes já ouviram falar do próprio. Criado por Gordon Lyon o Nmap passou a ser indispensável para Administradores de Redes.

Melhor eu parar de falação e mostrar logo o que ele faz! =)

Para instalar o nmap no Ubuntu é bem simples.

$ sudo aptitude install nmap

Com o nmap já instalado vamos brincar um pouco com ele. =P

Entre como root e digite:

#nmap localhost

!#$@!#! o que aconteceu??? :)

O nmap mostrou quantas portas fechadas o seu sistema possui (1707 closed ports), e mais abaixo a parte mais importante.

PORT: Mostra o número da porta/protocolo. Ex.: 80/tcp.
STATE: Mostra o estado da porta. Ex.: Open (Aberta).
SERVICE: Mostra o serviço que está utilizando determinada porta. Ex.: http.

Incrível não?! =D isso não é nada...

Vamos agora "nmapear" outro computador da rede. Consegue fazer sozinho?! Creio que sim!

# nmap 192.168.1.2

192.168.1.2 é apenas um exemplo, pode-se por qualquer ip.

O que aconteceu de diferente?? Bom.. praticamente nada; listou o número de portas fechadas, as abertas, mostrou os serviços e tudo mais e uma informaçãozinha nova. O MAC Address.

@!#!@$%, o nmap é muito %$#$. Sim.. e isso num foi nem 5% do que ele é capaz de fazer. Então vamos continuar!!!

Se você escrever apenas:

# nmap

Irá aparecer todas as opções que o nmap possui. Não vou explicar todas pois ficaria aqui um mês mostrando detalhadamente cada uma. Então irei mostrar as principais.

Vamos incrimentar um pouco mais nossa pesquisa com o prefixo -sV.

# nmap -sV 192.168.1.2

Com o prefixo -sV vocês podem notar uma nova coluna com o nome de VERSION.
Agora a gente tem mais clareza do que está sendo operado em determinada porta =) Ex.: PORT: 80/tcp STATE: open SERVICE: http VERSION: apache httpd

#&%#$#$!!!! Oo

Com esse prefixo você pode notar que demora um pouco mais para mostrar o resultado da pesquisa porém o nível de informação é muito maior. Como podemos ver à cima a porta 80 do computador 192.168.1.2 está aberta com o serviço http que o Apache está executando.

Podemos também executar toda uma faixa de endereço. Por exemplo:

# nmap 192.168.1.1-254

Excelente não?? :) você também pode usar o prefixo -sV pra rastrear essa faixa de endereço sem problemas também.

Outro prefixo legal também de se utilizar é o -O. O que ele faz?? Usando esse prefixo a gente pode ver o sistema operacional que cada máquina está utilizando, se é Windows, Linux, MacOS. O nmap ainda não é muito bom para distinguir qual versão do Windows, Linux ou MacOS está utilizando, mas já ajuda bem.

Então vamos lá:

# nmap -O localhost

Escaneei minha maquina para ver qual SO estou útilizando, tive a seguinte resposta:

Running: Linux 2.6.X
OS details: Linux 2.6.17 - 2.6.18

Como disse, ele ainda num é muito eficiente em mostrar qual versão do GNU/Linux estou utilizando.

Outro prefixo muito útilizado pelos espertinhos de plantão é o -sS. O que essa coisa de prefixo faz?? Bem simples... Se o computador que nós estamos "nmapeando" tiver algum detector de intrusões (SNORT ou qualquer outro) é muito fácil dele saber que estamos nmapeando o computador. O prefixo -sS tenta fazer com que isso não aconteça.
Operando neste modo o nmap envia um pacote SYN para cada porta alvo e espera ver se recebe algum pacote ACK de confirmação sem, entretanto, responder com o segundo pacote ACK, o qual abriria conexão.

Como usar então? Igual os outros.

# nmap -sS endereço_da_maquina

Vale comentar que esses prefixos podem ser útlizados juntos sem problemas. Por exemplo:

Quero saber qual SO está rodando a máquina "x" e também desejo saber detalhadamente a versão de cada aplicativo que está usando determinadas portas, isso tudo tentando fazer com que nenhum IDS me pegue, isso tudo em uma pesquisa só.

# nmap -sS -sV -O endereço_da_maquina

@$@!$! de nmap!!! hauiha! Realmente...!

Podemos também escanear por pacotes UDP. Extremamente simples também, basta por-mos o prefixo -sU.
Pacotes UDP são rápidos se direcionados para máquinas Windows. Ex.:

# nmap -sU endereço_da_maquina

Por padrão o nmap escaneia um conjunto de 1661 portas, que incluem as mais útilizadas. Um procedimento que Administradores de Redes utilizam é esconder a porta SSH em portas mais altas.
Mas e agora?? Como faço para escanear as outras portas se o nmap escaneia apenas um conjunto de 1661 portas???

Elementar meu caro Watson!!

É por isso que existe o prefixo -p!! =DD

Com ele você pode determinar uma porta específica como uma faixa de portas. Ex.:

# nmap -p 5150 endereço_da_maquina

Neste caso estamos escaneando a porta 5150 para ver como ela está.

# nmap -p 5000-6000 endereço_da_maquina

Neste caso estamos escaneando uma faixa de portas que começa na 5000 e vai até a 6000.

Vale ressaltar que scans feitos em rede interna são muito mais rápidos do que os scans feitos em rede externa, então caso tente escanear alguma rede externa e você ver que está demorando, isso é comum!! :)

Bom... creio ter passado os prefixos mais útilizados do nmap... e espero que todos tenham aprendido muito bem!

**Desenvolvi um script em C++ caso queiram automatizar um pouco o nmap. Para baixa-lo acesse o link abaixo:

Download Nmap Script v1.0

Quaisquer dúvidas sabem o que fazer né?! Podem comentar!! =)

Obrigado e Abraços.

sexta-feira, 26 de setembro de 2008

Gravando dvd's com trava (libdvdcss)

Bom Dia a todos!!

Antes de mais nada, queria agradecer pelo aumento de visitas ao meu blog. ;) obrigado a todos, porém... gostaria que pelo menos deixassem algum comentário sobre o post, uma dúvida, um elogio, uma crítica... pois não é facil ficar atualizando sem saber o que estão achando né?!

Bom... comentários a parte, vamos para a dica agora.

Esses dias me deparei com uma situação meio desconfortavel (hauiha). Aluguei um dvd (Piratas do Vale do Sílicio - Assistam.. é ótimo!! huaha) e não ia dar tempo de ve-lo, então resolvi grava-lo (é contra lei e tudo mais... mas atire a primeira pedra quem nunca fez isso... =D).
Quando fui mandar o k3b gravar o DVD tive uma grande surpresa, descobri que o mesmo não grava dvd's com trava anti-cópia. :( Bom... pesquisei no nosso grande Dr. Google e achei uma solução.

Existe um pacote com o nome de libdvdcss.

Mas o que esse pacote faz??

Esse pacote vem com ele arquivos que permitem que o k3b grave dvd's com trava. Wualaa!! Estava resolvido meu problema. É muito facil de se achar na net esses arquivos para serem compilados direto do fonte, mas postarei aqui o pacote .deb para ficar mais facil a todos que usam sistemas Debian Like.

Download do libdvdcss2_1.2.8-1_i386

Quem souber de algum software de gravar cds/dvds que já vem com essa função de copiar com trava, por favor... Comente para nós!

Por hoje acho que é só. Abraços!!

quinta-feira, 25 de setembro de 2008

Usando comandos do sistema em C

Boa Tarde a todos!!!

Primeira dica de programação em C. Dica muito útil. Usando-a corretamente, dará para automatizar bastante algumas tarefas diárias ou até fazer algumas interfaces mais legais para certos programas como o exemplo que mostrarei no final desta dica.

Pois bem, para colocar comando do sistema em C é bem simples, basta inserir o comando system().

Ex.: system("clear");

Com isso, quando compilar o nosso programa em C, o sistema vai limpar a tela, ou seja, a mesma coisa que o comando clear faz quando estamos no Linux em modo texto.

Ok, até aí tudo bem! E se eu quero interagir o programa com o usuário e o usuário por exemplo quer dar um simples "nmap" em um determinado ip sem pôr a sintaxe: nmap -sS -sV. O que eu faço?

Se tentar por:

Ex.: system("nmap -sS -sV %s", ip);

Vai dar erro, pois o comando system não aceita variáveis. O que fazer? Aí que entra o comando sprintf.

O comando sprintf funciona da seguinte maneira:

sprintf(var, "comando + variável", variavel);
system(var);

Sendo que:
var = pode por qualquer nome, essa variável vai armazenar o "comando + variável" para depois passarmos para o system;
comando + variável = ex.: nmap -sS -sV %s
variavel = a variável que você quer que %s receba.

Para ficar mais fácil o entendimento, vou pôr um exemplo do script para nmap.

main () {
char ip[16]; //variável que vai receber o ip do usuário

char var[100]; //variável que vai receber o comando+variável ip


printf("Entre com o número do ip: ");

scanf("%s",&ip); //var ip tem o valor digitado pelo usuário
sprintf(var, "nmap -sS -sV %s", ip); //var recebe valor com + var ip

system(var); //system recebe valor de var
return 0;
}


Compile essa parte do script e terá uma noção maior do que o comando sprintf é capaz!!
Não se esqueça de adicionar as bibliotecas stdlib.h e stdio.h .O blog não sei porque não deixa eu declara-las no post... hauiha!!!

Acho que por hoje é só.

Obrigado a todos. =)

ps2pdf - Convertendo formatos .ps para .pdf

E ae pessoal como estão??

Bom... hoje vou postar uma dica útil de conversão de formatos. É bem simples e já ajudou várias pessoas. Certo dia baixei uma apostila de Shell Script em formato .ps. Abriu normalmente. O problema é que usuários de softwares proprietários (window$ no caso) quando instalado não vem com um programa que abre tal extensão. Deve-se lógico existir programas que abrem esse formato no window$, mas como esse é um blog sobre software livre, demonstrarei um jeito fácil de se converter e ai poder mandar para seus amigos que usam tal sistema.

Vamos lá!!

O programa que iremos trabalhar aqui é o ps2pdf que se encontra no pacote xpdf em distros Debian Like. Para baixar:

$ sudo apt-get install xpdf

Instalado o pacote corretamente, entre na pasta que está seu arquivo .ps e execute:

$ ps2pdf aquivo.ps arquivo.pdf

Pronto!!

Explicando agora: ps2pdf é o programinha que a gente vai usar para converter. O arquivo.ps é o nome do nosso arquivo com a extensão .ps e o arquivo.pdf é o nome que você quer dar ao novo arquivo convertido.

Simples e bem útil.
Bom... é isso ae!! Espero ter ajudado. Não esqueçam de postar ok??

Abraços!! Até a próxima.

quarta-feira, 24 de setembro de 2008

Forçar instalação de pacotes i386 em sistemas 64bits

E ae pessoal beleza???

Bom... Num poderia deixar vocês só com o post anterior não é verdade?! Então hoje vai uma dica muito útil e pode ajudar bastante gente que usa sistemas Debian Like. Essa dica foi desenvolvida no Ubuntu 8.04 com o pacote do emulador de jogos de Super Nintendo o Zsnes (testei com outros pacotes também, mas agora não me recordo quais). Se alguem testar em outra Distro* num esquece de postar se ocorreu tudo certo.

Então vamos botar a mão na massa!! ^^

Feito o download do pacote .deb desejado, entre no terminal e execute o comando:

$ sudo dpkg -i --force-architecture nome_do_pacote.deb


Pronto!!! Não se esqueça que este comando deve ser realizado dentro da pasta que se encontra o pacote .deb.

Infelizmente ainda há pacotes que existem em arquitetura de 32bits mas ainda não foram desenvolvidos para arquitetura de 64bits. Essa dica vem "quebrar o galho" de quem necessita muito desses pacotes.

Espero realmente ter ajudado.

Quaisquer dúvidas, elogios, críticas, etc etc etc... POSTEM!!! :) estou aqui para responder.

*Distro = Distribuições

Bem-Vindos!!! =)

Sejam todos bem-vindos ao Criptograph WebBlog!!!

Beleza Pessoal??

Bom... como primeiro post venho explicar como vai funcionar essa coisa aqui.

Tive a idéia de criar este blog com objetivo de proliferar o uso e a cultura do Software Livre e mostrar para todos que não só de Software Proprietário que se vive o homem, pelo contrário. Não será um blog de fanatismo ao uso do mesmo, mas mostrará os pontos positivos e também os negativos (são poucos, mas existem, como existe em tudo).

Qual as frequência das postagens?

Boa pergunta. Não sei =)
Quando tiver algo importante, algum artigo ou dica que eu desenvolvi ou notícias interessantes... eu postarei.
Já tive vários blogs e confesso, nunca postei com frequencia. Este blog vai ser um desafio para mim, pois pretendo postar pelo menos semanalmente, mas... tudo depende da Faculdade e do Trabalho.

Qual o conteúdo do Blog?

O Conteúdo vai ser voltado ao Software Livre, seu uso e cultura... podendo é claro postar coisas fora do assunto.
Pretendo mostrar artigos sobre Linux em geral (softwares, linguagens de programação, etc), principalmente a distros Debian like, não por ser melhor que as outras (Fica bem claro aqui... não existe distribuição linux melhor que uma outra... isso tudo é gosto) mas porque escolhi essa para utilizar.

Finalizando...

Espero realmente que vocês gostem desse blog e POSTEM!! Pois sem postagem creio que nenhum blog sobrevive.

“Software is like sex: it’s better when it’s free.” - Linus Torvalds