A importância da linguagem Python para profissionais de segurança

07-06-2013_python-logo-master-300x282

De acordo com algumas observações elementares e outras mais relevantes feitas por Adrian Birsan, pesquisador de segurança do InfoSec Institute, a linguaguem Python é bastante valorosa e agrega um conhecimento muito grande a todos os que se destinam a estudá-la, e posteriormente, colocar em prática esse conhecimento que passaram a adquirir.

Como muitos de nós somos sabedores, Python é uma linguagem de programação orientada a objeto interativo. Ela é muito fácil de aprender e é uma linguagem de alto nível, além de ser extremamente poderosa. Python pode ser executada em Windows, Linux, UNIX, Mac OS X e está livre para usar (mesmo para fins comerciais), uma vez que é baseada em uma licença open source. Ela pode ser usada para escrever ferramentas e scripts personalizados para fins especiais, ao realizar a avaliação de um aplicativo de segurança.

Programação e Disponibilidade de Scanners

Existem scanners de vulnerabilidade comerciais disponíveis no mercado, que podem ser utilizados para a descoberta de vulnerabilidade. No entanto, tais scanners de vulnerabilidade têm suas próprias limitações e até mesmo os scanners mais avançados, por certas vezes, não são capazes de fornecer uma cobertura completa. Isso faz com que o trabalho de um testador de penetração torne-se um pouco mais difícil. Este é o momento onde os scripts / ferramentas personalizadas surgem. Eles ajudam a preencher as lacunas criadas pelo scanner, já que eles são personalizados para atender a aplicação de destino.

Deve-se notar aqui, que todas as ferramentas personalizadas escritas para finalidade específica usando linguagens como Python, não devem ser um substituto para scanners de vulnerabilidade, e, idealmente, devem ser utilizadas para além desses scanners, com a intenção de obter os melhores resultados.

Importância das Funcionalidades de Python para os Pentesters

O objetivo deste artigo é apresentar aos testadores de penetração de aplicações Web com Python e explicar ao mesmos como Python pode ser usado para fazer solicitações HTTP personalizadas – que por sua vez, podem ser expandidas para o desenvolvimento de scripts / ferramentas personalizadas que podem ser desenvolvidas para condições especiais, onde os scanners falharem. Os leitores serão introduzidos em bibliotecas, que podem ajudar um testador de penetração a fazer solicitações HTTP personalizadas, contando com a utilização do Python.

Configurando o Ambiente

Neste artigo, Birsan não irá entrar em detalhes sobre a configuração do ambiente. Se você é um usuário de Linux ou Mac, as chances são altas de que você não precisará instalar Python, uma vez que normalmente ele vem pré-instalado. Para verificar se o Python está instalado em seu sistema, inicie o prompt de comando e digite “python”; se Python vier realmente pré-instalado, o interpreter vai mostrar imediatamente.

Os usuários do Windows podem fazer o download do instalador do URL acima mencionado, e instalar o Python. Para tornar ainda mais fácil o uso de Python, os usuários do Windows podem adicionar Python para o path do sistema, editando uma variável de ambiente. Uma vez feito isso, os usuários podem simplesmente sair do prompt de comando – independentemente do diretório de trabalho atual e ainda serem capazes de invocar o interpreter Python.

Módulos Python para Solicitações HTTP

Python tem vários módulos que podem ser usados ​​para gerar solicitações HTTP personalizados. Nós vamos cobrir dois desses módulos que podem ser usados ​​para o desenvolvimento de scripts personalizados , e pode disparar as nossas cargas , juntamente com a realização das mesmas ações que um testador de penetração realiza manualmente – a única diferença sendo , isso é feito por um script em vez de um manual tentativa .

httplib

Este módulo foi renomeado para httplib.client no Python 3; no entanto uma vez que neste artigo está sendo usada a versão 2.7 como exemplo, o módulo será mantido mesmo como httplib. Normalmente, este módulo não é usado diretamente, mas ao invés do módulo urllib, ele é usado internamente para fazer solicitações HTTP. No entanto, os usuários interessados ​​podem sempre usá-lo.

Para podermos enviar pedidos personalizados, é necessário seguir os seguintes passos:

1. Importar a biblioteca – Antes de utilizar uma biblioteca, é preciso importá-la. Uma vez que neste caso, vai ser utilizada a biblioteca httplib para enviar solicitações HTTP e receber as respostas de volta, é preciso importá-la.

2. Criar uma conexão – Uma vez importada, é possível começar a usá-la imediatamente. Dessa forma, é necessário criar um objeto de conexão em primeiro lugar. Isto pode ser conseguido usando o método httpConnection().

3. Enviar um pedido HTTP – até agora, nenhum pedido HTTP foi enviado. Para fazer isso, é preciso usar o método request (). Isto é, quando o pacote HTTP que foi criado for enviado pela rede para o servidor web de destino, utilizando o método passado como um argumento (no nosso caso GET) .

4. Obter uma resposta HTTP – Agora que já foi enviado o pedido, podemos usar getresponse () para obter a resposta do servidor. Este método irá retornar um objeto de resposta HTTP de volta, e a partir do momento em que ler, vai enviar a saída gerada pelo servidor.

urllib2

urllib2 é um pouco diferente da biblioteca httplib quando se trata de criar e enviar solicitações HTTP. Nesse caso, não há a necessidade de abrir uma conexão e, ao invés de importar, nós podemos fazer um pedido diretamente. Isto é muito mais simples quando comparado com httplib. Sendo assim, sugere-se que os usuários façam uso de urllib2 como é recomendado até mesmo pela própria comunidade Python.

Ressaltando que os leitores devem passar a documentação do Python, para entender quais as funções são suportadas pelo módulo urllib2 no sentido de explorar todo o potencial desta biblioteca, e utilizá-lo durante a criação de suas próprias ferramentas ou scripts. Na sequência, vem uma ferramenta de injeção SQL de amostra que foi criada apenas para fins de demonstração. Ela atinge a página de login do site e injeta um “simple payload”:

1. import urllib

2. import urllib2

3. location = “http://test_target.site/login.aspx”

4. values = {“username”:”‘”,”password”:”password”,”btnSubmit”:”Login”}

5. data = urllib.urlencode(values)

6. req = urllib2.Request (location,data)

7. response = urllib2.urlopen (req)

8. page_data = response.read()

9. print page_data

Facilidade na Projeção de Ferramentas Personalizadas

O script acima é apenas para mostrar a facilidade com que é possível criar ferramentas personalizadas. Além disso, esse script está longe de ser perfeito e vai precisar de muita modificação antes de ser utilizado na prática. Ele só aciona um pedido, enquanto que na vida real a ferramenta deve disparar várias solicitações por iteração sobre a “payload list”. Dessa forma, ele fica como uma espécie de “exercício” para os leitores a percorrer bibliotecas e as funções que ele suporta, para entender como eles podem criar suas próprias ferramentas.

Trabalhando com Cookies e Headers HTTP

A ferramenta da vida real também terá que cuidar do processo de gerenciamento de sessão e, portanto, precisa também lidar com os cookies e outros headers HTTP como referências, tipos de conteúdo, dentre outros elementos. Birsan disse ainda que também precisará iterar sobre a lista de URLs repetidamente, até que todas as nossas cargas sejam disparadas, uma por uma, para cada parâmetro, a fim de assegurar a cobertura.

Considerações Executivas

Python é uma linguagem fácil de aprender, que pode ser muito útil para os testadores de penetração criarem suas ferramentas personalizadas. Assim, os usuários podem criar códigos reutilizáveis ​​usando orientação a objetos do Python, que pode ajudá-los a criar classes que podem ser tanto herdadas quanto estendidas. Python não só pode ser usado para scripting rápido para alcançar pequenas tarefas de automação, mas também para criar vulnerabilidades de classe empresarial, nos processos de digitalização do cotidiano.

Com informações de Net-Security e Under-Linux.

Data: out. 2013
Fonta: revista.espiritolivre.org

Facilidades que o Ubuntu oferece para programadores

Algumas facilidades que o Ubuntu oferece para programadores

Algo que está em crescimento constante é o mercado de desenvolvimento web, desde criações de simples sites até complexos sistemas de gerenciamento e gestão, com isso a necessidade de profissionais capacitados é fundamental para que o ritmo não se quebre, e sempre sai nos noticiários como o mercado está remunerando bem. Ou seja, se você tem interesse de ingressar nessa área, saiba quais são as vantagens que o Ubuntu ou qualquer outro sistema Linux podem oferecer.

Unity te poupa MUITO tempo

Facilidades que o Ubuntu oferece para programadores

Realizar ações através do teclado o torna mais produtivo. Imaginemos a seguinte situação: Estou procurando uma pasta no qual estão os arquivos do meu trabalho de faculdade, porém como temos diversas pastas dentro de pastas, passamos aproximadamente de 10 a 20 segundos procurando com o mouse clicando (Home -> Documentos -> Trabalhos -> Faculdade -> TCC -> Projetos -> Site -> index.html). Pode parecer ridículo, mas pare e pense quantas vezes já aconteceu isso? Claro que também podemos pensar em deixar a pasta em um lugar mais simples como na Área de trabalho por exemplo, mas deixando exposta podem outras pessoas modificar ou deletar seus arquivos importantes.

O sistema de busca do Unity é poderosos, através do ‘Command‘ do teclado ele abre rapidamente, e digitando apenas palavras chave já encontramos diversos arquivos, poupando tempo precioso.

Conhecer os atalhos e comandos do terminal é fundamental

Existem alguns comandos simples que fazem uma enorme mágica quando navegamos por pastas. Vejamos alguns:

  • Cd: Entra na pasta selecionada. | cd ~: Volta a pasta raiz. | cd ../: Volta a pasta anterior.
  • Ls: Lista os arquivos da pasta em que se encontra.
  • cat: Mostra o conteúdo do arquivo.
  • Mkdir: Cria uma nova pasta.

Temos diversos outros, mas considero esses fundamentais. Imagine você toda hora que quer criar uma nova pasta tem que clicar com o botão direito do mouse e selecionar a opção de criação? Se ao invés disso fizesse ‘mkdir projetos‘ e pronto. Fácil não?

Estabilidade, velocidade e ferramentas = facilidades

Existem diversas ferramentas gratuitas excelentes, veja por exemplo a quantidade de editores e IDE’S que temos, basta entrar na central de programas e ir na categoria ferramentas do desenvolvedor: Geany, Bluefish, Eclipse, Ninja IDE, Sublime Text, Eric IDE, Vim, entre outros. Em sua grande maioria estáveis, rápidas, maleáveis, com diversos plugins que turbinam o processo. Além disso há diversos outros projetos open source que vão agregando gradativamente durante o desenvolvimento.

Se tem conhecimento sobre programação, existe os testes, e quando rodados em sistemas Linux é muito mais rápido do que no Windows por exemplo. E se tem diversos projetos que não podem se misturar, trabalhar com Virtual Machine junto com Vagrant é excelente no Linux.

Estes são alguns exemplos. Diga nos comentários outras facilidades que encontra diariamente em seu processo de desenvolvimento.

Data: out. 2013
Fonte: ubuntudicas.com.br

Plataforma inteligente ajuda leigos a programar

Um dos problemas gerados com a transferência dos relacionamentos do universo palpável para o virtual é que a maioria das pessoas não faz ideia de como funcionam as ferramentas que elas usam para se comunicar. E se isso já é um problema para a sociedade, em geral, afeta também quem depende do meio tecnológico para trabalhar.

A NoFlo, empresa que reciclou um conceito de programação criado pela IBM na década de 1970, resolveu espalhar o que aprendeu justamente para ajudar esse público que, embora lide com criações tecnológicas, não consegue entendê-las devidamente. São gerentes, executivos, designers… gente cobrada constantemente em relação ao tema.

Eles têm uma ferramenta de “programação baseada em fluxo” com a qual é possível programar organizando componentes na base do “arrastar e soltar”. Cada componente tem o formato de uma caixa e efetua uma ação específica.

É comum programadores criarem diagramas para esquematizar graficamente o que pretendem fazer e, depois, juntarem os códigos para que tudo saia como planejado. O que a ferramenta da NoFlo faz é transformar o diagrama, em si, no ambiente de programação – ao invés de ver um monte de linhas com códigos, o programador vê o diagrama e, sempre que arrastar uma coluna, uma ação acontece.

Hoje o NoFlo funciona como uma plataforma de código e está em uso por várias startups e grupos de pesquisa, mas eles precisam finalizar a camada de interface do usuário e financiar um ecossistema hospedado. Por isso, abriram uma campanha de financiamento colaborativo no Kickstarter.

O dinheiro ajudará a empresa a difundir a fórmula que criou, financiando o desenvolvimento de mais componentes, por exemplo. Serão criados tutoriais, demonstrações, Docs e kits de inicialização para aplicações; e haverá colaboração em tempo real.

Ao que parece, muita gente se interessou pela proposta, porque a campanha foi ao ar nesta quinta-feira, 1, e já arrecadou US$ 27,2 mil – mais que 1/4 dos US$ 100 mil que estão pedindo. A ação fica no ar até 15 de setembro.

Fonte: olhardigital.uol.com.br

Aptana Studio – IDE gratuita e OpenSource

No post de hoje falaremos sobre o software open source e gratuito chamado Aptana Studio, destinado para desenvolvimento o WEB; uma alternativa ao DreamWeaver da Adobe. Aptana Studio está disponivel para Linux, Windows e MacOS.

Começando do básico: o que é uma IDE ? 

IDE vem do inglês “Integrated Development Environment”(sistema de desenvolvimento integrado em português), que nada mais é, do que um programa que junta várias ferramentas que auxiliam o desenvolvedor na hora de criar um software.

Aptana Studio é desenvolvido em JAVA e baseado no Eclipse(outra IDE muito conhecida pelos desenvolvedores) tem suporte para as linguagens HTML, JavaScript, CSS, ScriptDoc, PHP, Ruby on Rails, Adobe AIR.

Embora seja baseado no Eclipse, o Aptana possui uma versão standalone, ou seja, uma versão “sozinho”, você não precisa ter instalado o Eclipse para usar o Aptana. Mas, se preferir, ele pode ser instalado como um plugin no Eclipse.

Algumas funções presentes no DreamWeaver e que, até o momento, só encontrei no Aptana Studio, são:

Assistente de código 

Esta função presente em quase todas (senão todas) as versões do DreamWeaver faz com que o programador digite menos código auto-completando as tags ou caminhos de imagens, por exemplo, abrindo e fechando parenteses e colchetes.

Ele funciona do mesmo modo que já conhecemos no DreamWeaver(se não conhece, verá abaixo), ao digitar o inicio da tag, aparece um pop-up que sugere a você o preenchimento da tag.

Esta talvez seja uma das principais ferramentas e a mais usada, extremamente util e que nos poupa muito tempo, sem contar que faz com digitamos menos código.

Suporte FPT e EGit 

Aptana também tem suporte ao upload e download de arquivos via FTP, direto para o servidor.

Egit é um plugin para Eclipse que possibilita usar o GitHub, site onde se pode hospedar um código fonte através do repositório git, sendo assim permitindo que você possa compartilhar seus projetos e codigos com quem desejar. Muito usado em empresas de desenvolvimento.

Outline

Esta função mostra no canto inferior esquerdo uma hierárquia do nosso código, juntamente com as propriedades facilitando muito na visualização do código, veja na imagem:

Debugger integrado 

Serve para encontrar erros no seu código, emitindo pequenos alertas e as vezes até impedindo que o código seja executado de forma incorreta.

Interface customizável

O Aptana, assim como as mais famosas IDEs Web também conta sistema de destaque de código, onde cada tag ou linha de código recebe uma cor diferente ajudando na sua identificação, essas cores, podem ser pré-definidas ou escolhidas por você mesmo e há até a possibilidade de um tema ‘externo’ criado pela comunidade.

Mais Informações – Aptana Studio 3

Site Oficial
Download

FengOffice

O FengOffice é uma suíte Web Office Open Source. Uma alternativa na nova era de aplicações office em forma cloud computing.

Se sua empresa e seus funcionários ou colaboradores necessitam dinamizar projetos, documentos, compartilhar slides, vídeos, imagens, documentos em geral, onde cada funcionário tem uma versão do documento e/ou projeto, o Feng Office pode ser a solução ideal.

Ele permite às empresas gerenciar tarefas de projeto, faturamento, documentos de comunicação com colaboradores, clientes e fornecedores, agendar reuniões e eventos  e compartilhar todo o tipo de informação eletrônica.

O FengOffice trabalha com os seguintes módulos:

    • Geral ou Resumo: É uma síntese que mostra um resumo das informações de gerenciamento. Ele exibe informações relevantes como: horário de entrada e actividades em curso, execução de tarefas, vencidas e tarefas pendentes, recentemente adicionados ou modificados os documentos, as últimas mensagens, comentários e conversas, e- mails, e muito mais.

    • Workspaces: Espaços de trabalho permitem que os indivíduos e equipes para organizar seus dados e tarefas e compartilhá-los com outras pessoas. Eles podem estar ligados aos Clientes , Projetos , Produtos, Serviços , Departamentos , etc Você pode definir vários níveis e sub- níveis de Espaços de Trabalho Você pode definir vários níveis e sub-níveis de Espaços de Trabalho, identificando visualmente seus espaços de trabalho mais relevantes, de forma rápida, através da atribuição de rótulos de cor diferente.

    • Notas: As notas são uma maneira fácil de registrar e compartilhar comentários sobre qualquer informação. Elas são muito úteis para: rastreamento das conversas mantidas com terceiros, avaliação da satisfação do cliente sobre a qualidade, acompanhamento de um documento físico, etc. A nota pode ser escrita por qualquer usuário e pode avisar os outros sobre isso por e-mail.

FengOffice 01
    • E-mails: O e-mail segue o esquema tradicional, com um ou vários destinatários de mensagens que trocam. Além disso, os usuários têm a possibilidade de compartilhar a mensagem com outras pessoas, enviando a mensagem para um espaço de trabalho compartilhado. Os anexos de e-mail são automaticamente armazenados como documentos.

    • Contatos: O módulo gerencia as informações de contatos de todas as organizações e pessoas ligadas à sua empresa. A lista de contatos pode ser filtrada por um espaço de trabalho específico, por tags, ou de uma forma geral.

    • Calendário: Agenda de eventos, metas, tarefas com prazos e reuniões. Pode ser exibido diariamente, semanalmente ou mensalmente. A programação pode ser compartilhada entre os usuários que têm os privilégios correspondentes. Pode-se ver o calendário de eventos em geral, ou especificamente para cada área de trabalho ou de marca. Pode sero pode ser os usuários que têm os privilégios Pode ver o calendário de eventos em geral, ou especificamente para cada área de trabalho ou de marca.

FengOffice 01
  • Documentos: O Feng Office permite armazenar e compartilhar todos os tipos de documentos. O sistema mantém um registro das diferentes versões, comentários e um acesso controlado para otimizar o trabalho de pessoas que colaborem em um documento. Documentos de texto e apresentações podem ser criados ou editados directamente no Feng Office sem a necessidade de nenhum software adicional no seu computador.

  • Tarefas: Você pode acompanhar todas as tarefas, sub-tarefa que faz parte de um serviço, projecto ou actividade. O sistema proporciona acesso rápido às funções, agrupados por estado (pendentes, atrasados e concluída), a prioridade atribuída por pessoa e muito mais. As tarefas podem ser agrupadas usando marcos, fixação de prazos comuns e melhorar a gestão do projeto. É possível notificar uma pessoa que é atribuída uma tarefa por e-mail. Todas as informações relacionadas a uma tarefa específica estão disponíveis em um único clique. Você pode criar um modelo de um conjunto de tarefas e sub-tarefas , melhorando a adoção de procedimentos padronizados.

  • Time Tracking: O sistema permite o acompanhamento de horas para cada área de trabalho, sub-espaço, tarefa e usuário. Relatórios de capacidades permitem produzir facilmente uma lista de horas para um período de tempo, os usuários e espaço de trabalho.

Demo do FengOffice

Acesse um demo do FengOffice aqui: http://201.33.25.136/fengoffice/

login: admin

senha: admin

Plataformas e Hardware

O Feng Office funciona em hardware padrão, Linux como servidor e cliente, clientes Microsoft Windows e MacOS.

A Linux Solutions é uma empresa especializada em soluções de intranet com Feng Office no Brasil.

Entre em contato aqui.

Fonte: linuxsolutions.com.br