rss
twitter
  •  

3º Dia Livre – Programação Definida!

| Posted in Dia Livre, Impressões, Java, Linux, software livre, Tux-ce |

0

Neste fim de semana foi publicada a programação oficial do 3º Dia Livre, encontro para usuários, profissionais ou entusiastas do movimento de Software Livre no Ceará.

Esta 3ª edição contará com 4 palestras de temas bem diversificados como podem ver na grade abaixo:

Horário Palestra Palestrante
08:00
- 08:10
Abertura -
08:10
- 09:00
CRUD Flex com Java Alessandro Moreira
09:10
- 10:00
Gerenciando Nuvens Privadas com o Xen Cloud Platform Lorscheider Santiago
10:10 – 11:00 Gerenciando Projetos com Ferramentas Livres Paulo Cesar C. Branco
11:10 – 12:00 Arduino – Desenvolvendo com Hardware Livre Marcelo Melo
——– -

Ainda não sabe o que é o Dia Livre? Clique aqui para conhecer!

As inscrições continuam abertas para esta 3ª edição que acontecerá no dia 12 de Novembro, Sábado, na Faculdade Estácio FIC.

Clique aqui e faça sua inscrição gratuita.

Abraços,

Feliz dia do Programador!

| Posted in Impressões, Java, Python, ruby, software livre |

4

Saudações pessoal,

Um feliz dia do programador para todos aqueles que, profissionalmente, curiosamente ou mesmo por mera falta do que fazer escrevem ou já escreveram linhas de código!
Esta profissão que na maior parte das vezes não trá$ o retorno e$perado, o que apenas demonstra o quão apaixonados por linha de código são essas pessoas… e por problemas.
Desafiador…estressante…cansativo…divertido…prazeroso… Como em qualquer “casamento”… na alegria e na tristeza!
Obviamente que eu não vou colocar em todas as centenas de linguagens de programação que existem.. portanto, se a sua linguagem favorita não foi homenageada abaixo, não fique triste. São muitas..difícil lembrar de todas.. O que vale é a intenção.
Assembly
##############
variable:
      .message db “Feliz dia do Programador!$”
code:
      mov ah, 9
      mov dx, offset .message
      int 0×21
      ret
BASIC
##############
PRINT “Feliz dia do Programador!
C
##############
# include <stdio.h>
int main(void)
{
       printf (“Feliz dia do Programador!”);
       return 0;
}
C++
##############
# include <iostream>
int main()
{
         std::cout << “Feliz dia do Programador!” << std::endl;
         return 0;
}
Cliper
##############
? “Feliz dia do Programador!”
Delphi
##############
Program FelizDia;
{APPTYPE CONSOLE}
begin
      WriteLn(‘Feliz dia do Programador!’);
end.
Go
##############
package main
import “fmt”
func main() {
       fmt.Printf(“Feliz dia do Programador! \n”)
}
Java
##############
public class FelizDia {
       public static void main(String[] args) {
                 System.out.println(“Feliz dia do Programador!”);
       }
}
Pascal
##############
program FelizDia(output);
begin
       WriteLn(‘Feliz dia do Programador!’);
end
Perl
##############
print “Feliz dia do Programador!”;
PHP
##############
<?php
     echo “Feliz dia do Programador!”;
?>
Python
##############
print(“Feliz dia do Programador!”)
Ruby
##############
puts “Feliz dia do Programador!”
Shell Script
##############
echo ‘Feliz dia do Programador!’
SQL
##############
select ‘Feliz dia do Programador!’;

Abraço!

Brute-force? O Dirb… DirBuster lhe ajuda a identificar vulnerabilidades em seu site

| Posted in Arch Linux, cultura hacker, Impressões, Java, Kubuntu, Linux, redes, segurança, software livre |

1

Bom, para quem não conhece nada sobre Brute-Force ou apenas ouviu falar vagamente mas não tem certeza sobre o que realmente é um ataque deste tipo, sugiro dar uma lida em meu último post, onde apresentei algumas informações sobre brute-force bem como uma ferramenta que podemos utilizar para testar nossos sites e verificar o quão vulneráveis eles estão a este tipo de ataque. Segue link para o mesmo:

Brute-Force? O Dirb lhe ajuda a identificar vulnerabilidade em seu site!

Agora que já conhecemos um pouco sobre as técnicas de brute-force e a ferramenta Dirb, que tal conhecer outra mais apresentável?

Me refiro ao DirBuster. Uma aplicação multithread desenvolvida pelo OWASP (The Open Web Application Security Project) que tem como objetivo realizar brute-force em diretórios e nomes de arquivos na web. Assim como o Dirb, o DirBuster trabalha em cima de dicionários ou listas. Ao todo ele trás 9 listas que podem ser utilizadas para nossas varreduras e testes. Como todas as suas listas foram criadas na unha, após exaustívas pesquisas e buscas na web por nomes mais utilizados para arquivos e diretórios em servidores web, o DirBuster mostra-se extremamente efetivo para este tipo de atividade conseguindo encontrar até mesmo os arquivos mais ocultos e escondidos.

Mas se você não ficar satisfeito, nós garantimos a devolução do seu dinheiro, com apenas utilizar o modelo de dicionários, o DirBuster ainda lhe possibilita o ataque de brute-force mais purista. Tentativa e erro com combinações possíveis de caracteres. Claro, se você tem muito poder de processamento e tempo sobrando, boa sorte. ;]

Legal Kalib, quer dizer que agora posso sair invadindo sites?

o.O Como diria o Chaves: Ai que burrrrroooo.. dá zero pra ele…

Não amigo. O meu intuito não é incentivar ou apresentar qualquer mecanismo ou técnica para este tipo de atividade. O DirBuster não foi feito para este propósito e nem conseguirá efetuar isto. Ele não fará nenhum tipo de exploit em arquivos ou diretórios que ele encontre. O DirBuster serve exatamente para identificar possíveis alvos para estes tipos de ataque, o que nos permite agir de forma corretiva ou preventiva em nossos servidores web. ;]

Chega de lenga lenga.. vamos ao que interessa!

Como instalar?

Arch Linux
Bom, se você utiliza Arch Linux, pode pegar o pacote no AUR através do seguinte link(Lembrem-se de votar nele):

http://aur.archlinux.org/packages.php?ID=20809

Feito isto, basta seguir o procedimento padrão para pacotes do AUR.

1- Descompactar: [kalib@tuxcaverna downloads]$ tar -xvzf dirbuster.tar.gz

2- Entrar no diretório dirbuster e gerar o pacote: [kalib@tuxcaverna dirbuster]$ makepkg

3- Instalar o pacote: [kalib@tuxcaverna dirbuster]$ sudo pacman -U dirbuster-0.12-1-x86_64.pkg.tar.xz

Feito. ;]

Outras distribuições? Não tenho certeza se o pessoal de outras distribuições empacotou o DirBuster, portanto provavelmente você vai precisar baixar o arquivo compactado do site oficial do projeto. Busquei tanto no Debian quanto no (K)Ubuntu 10.10 e em nenhum destes encontrei o DirBuster nos repositórios através do aptitude.

Portanto se você não utiliza o Arch, segue link para download da ferramenta:

http://www.owasp.org/index.php/DirBuster#tab=Download

Mas qual a cara do bicho?

Como explicado antes, ele funciona parecido com o Dirb, porém em uma interface GUI (gráfica).

Como podem ver, é uma interface simples e de fácil manuseio.

Vamos aos pontos:

1- No campo Target, você deverá inserir a URL que será alvo do seu brute-force de diretórios e arquivos web.

2- Logo abaixo, vocẽ escolhe se deseja utilizar apenas GET ou HEAD & GET.

3- Agora é a vez de escolher quantas threads deseja utilizar. Quanto maior o número de threads, mais requisições simultâneas você estará utilizando. ;]

4- Abaixo você deverá escolher o tipo de brute-force.

* Baseado em dicionários, neste caso você deverá escolher um dos dicionários que a ferramenta já lhe disponibiliza através do seguinte caminho: /opt/DirBuster/

* Baseado em brute-force puro. Neste caso você deverá escolher qual conjunto de caracteres deseja que sejam utilizados, quantidade mínima e máxima de caracteres por tentativa.

5- Em seguida é a hora de escolher os filtros: Deseja fazer brute-force apenas em diretórios? Arquivos também? Modo recursivo? Extensões em branco? Diretório inicial para o scan? Que tipo de extensão?…

E como é o retorno que ele me dá?

Bom, vou escolher meu alvo e vou utilizar 20 threads em simultâneo. Não vou deixar a ferramenta rodando por muito tempo pois estou apenas fazendo uma demonstração.

Como podem ver, filtrei para que o brute-force comece no diretório raiz (/) e optei pela maior lista que o DirBuster possui como dicionário. Deixei rodando por cerca de 30 segundos e já tive o seguinte resultado.

A parte borrada no início da imagem não é um defeito. Vocês não pensaram que eu iria deixar exposto o alvo no qual fiz o teste, certo? No caso, optei pelo site de uma de nossas instituições de ensino. Bom, a imagem acima é um exemplo do retorno que consigo com a ferramenta. É a visão em Lista. Além dela você pode optar pela visão em árvore, que, como o nome informa, lhe trará a árvore de diretórios, sub-diretórios e arquivos que foram encontrados. Abaixo um exemplo da visão em árvore:

O resultado, mesmo deixando a ferramenta rodando por apenas 30 segundos, foi o esperado. Um espantoso caso de descuido com a segurança do site.

Alguns leves exemplos que me chamaram a atenção na lista que consegui:

Um diretório de administração exposto desta forma indicando que existe uma sessão do site com acesso permitido apenas para administradores. O que isso me leva a crer? Que quem conseguir acesso a esta sessão consegue manipular o sistema do site? O que nos leva a uma posterior análise da página index contida nele que possibilita uma tentativa de brute-force de login e senha? psssiiiuuuu… o.O


Um diretório para uploads de Arquivos? Que tal testar ele? Apenas usuários administradores possuem permissão de upload? Ou alunos conseguem fazer upload de fotos, trabalhos, por exemplo? De qualquer forma, isso me indica que existe a possibilidade de eu subir arquivos para o servidor deles. Que tal um script em php que me permitiria ter um console shell no servidor deles para inclusão, exclusão, edição, etc.. ? pssiiiiuuuu… o.O

Pode não ser nada.. mas também pode ser muita coisa.. O que um diretório chamado “gerencia” faz ali tão exposto e com um nome tão… tão… discreto? o.O psssiiiuuuuu

Acho que já conseguiram entender um pouco do que o DirBuster faz.

Abraços!

Happy Hacking…

PS: Wrong developers! Never play security by obscurity!

Que tal testar o Android em seu Linux?

| Posted in Android, google, Impressões, Java, Linux, software livre |

17

Se você é da área de tecnologia, com certeza já ouviu falar deste tal Android que vem ganhando cada vez mais notoriedade e mercado no mundo dos smartphones. Não ouviu falar? Sugiro que repense suas escolhas acadêmicas e/ou profissionais. Talvez não tenha feito a escolha certa. Atualize-se.

O fato é que o Android, como todos já sabemos, é um dos mais “populares” sistemas operacionais atuais para smartphones. Usei a palavra populares entre aspas pelo fato de ele ainda não ser muito utilizado, porém com certeza é muito citado. Desenvolvido inicialmente pela gigante Google, passando a ser mantido posteriormente pela Open Handset Alliance, o Android é um sistema operacional baseado no kernel Linux, permite que qualquer programador desenvolva uma aplicação em java, por exemplo, e controle o dispositivo através de bibliotecas desenvolvidas pela Google.

Apenas recentemente o Android vem ganhando realmente mercado em smartphones e aparelhos genéricos, os famosos xing-lings ou MPx da vida.

E você? Pensava em testar este tal Android mas não pretendia comprar um smartphone para tal? O Google pensou em você e desenvolveu um emulador SDK para que você possa rodar o Android em sua máquina.

Aqui estarei descrevendo o procedimento para instalação no Linux, porém não possui muita diferença e o processo pode ser facilmente adaptado no caso de usuários do OS X ou Windows.

Antes de mais nada preciso informar que ele possui como requisito básico o Java. Se você não possui java instalado em sua máquina, esta é a hora de o instalar.

Para começar, precisamos baixar o emulador SDK disponibilizado pelo google no link: http://developer.android.com/sdk/index.html

No meu caso, estarei trabalhando em cima da versão para Linux.

O arquivo baixado está compactado com a extensão .tgz e pode ser descompactado com o comando a seguir:

[kalib@tuxcaverna android]$ tar -xvzf android-sdk_r06-linux_86.tgz

Ele irá descompactar a pasta android-sdk-linux_86. Entre no diretório e repare que existe um sub-diretório chamado tools dentro dele. Você precisará rodar o executável  android que se encontra lá.

[kalib@tuxcaverna tools]$ ./android

A tela a seguir lhe será apresentada.

Agora precisamos instalar o Android em si, portanto vamos começar vendo a lista de aplicativos disponíveis para instalação.

Repare que na lateral esquerda existem 5 abas. Vamos trabalhar por enquanto na aba Available Packages. Ao clicar nela, a seguinte tela lhe será apresentada:

Clique na seta que se encontra ao lado da opção https://dl-ssl.google.com/android/repository/repository.xml

Lhe será exibida uma lista de aplicativos disponíveis para instalação, conforme imagem:

No meu caso, vou selecionar apenas a versão 2.2 do Android. Mas, sinta-se livre para selecionar e instalar outras que estejam disponibilizadas.

Uma vez que eu tenha selecionado a box do SDK Platform Android 2.2, API 8, revision 2, basta clicar em Install Selected.

Ele me apresenta uma janela de confirmação. Basta clicar em Accept e em seguida em Install.

Será iniciado o download da(s) aplicação(ões) selecionada(s), conforme imagem abaixo.

Ao concluir o download, a tela ficará aguardando que você clique em Close, como na imagem a seguir:

Após isto, podemos ir para a aba Installed Packages. Lá veremos a lista do que instalamos. No meu caso, apenas o SDK Platform Android 2.2, API 8, revision 2, como na imagem a seguir:

Agora vamos criar o dispositivo virtual. Clique na primeira aba, Virtual Devices, e em seguida clique no botão New…

Lhe será apresentada uma tela pedindo as seguintes informações:

Name: (Nome que deseja dar para este dispositivo virtual)

Target: (Você deve apontar para a API desejada. No meu caso, apontei para o Android 2.2 que instalei)

SD Card: (Aqui você define o tamanho que deseja para o arquivo que será o dispositivo virtual)

Skin: (Nesta opção você poderá definir a resolução que deseja utilizar ou tamaho de tela)

Hardware: (Opções para abstração ou comunicação com o seu hardware)

Pode preencher de forma parecida com o que eu fiz na imagem a seguir:

Feito isto, clicamos em Create AVD.

Bingo, seu dispositivo foi criado e está pronto para uso.

Basta clicar em cima dele e em seguida pressionar o botão Start…

E o resultado? Nosso Android dando o seu primeiro boot.

Vejamos o menu de principal…

Que tal testar o browser? Sim, pode testar. Ele já está conectado na internet, caso, obviamente, a sua máquina (hospedeira) esteja conectada. Eles já se comunicam por bridge.

Não é que funciona mesmo?!


Abraços!