Mostrando postagens com marcador python. Mostrar todas as postagens
Mostrando postagens com marcador python. Mostrar todas as postagens

segunda-feira, 27 de abril de 2015


Sinopse

Quando se trata de criar ferramentas eficazes e eficientes de hacking, o Python é a linguagem preferida da maioria dos analistas da área de segurança. Mas como a mágica acontece?

Em Black Hat Python, o livro mais recente de Justin Seitz (autor do best-seller Gray Hat Python), você explorará o lado mais obscuro dos recursos do Python – fará a criação de sniffers de rede, manipulará pacotes, infectará máquinas virtuais, criará cavalos de Troia discretos e muito mais. Você aprenderá a:

  • Criar um cavalo de Troia para comando e controle usando o GitHub.
  • Detectar sandboxing e automatizar tarefas comuns de malware, como fazer logging de teclas e capturar imagens de tela.
  • Escalar privilégios do Windows por meio de um controle criativo de processo.
  • Usar truques forenses de ataque à memória para obter hashes de senhas e injetar shellcode em uma máquina virtual.
  • Estender o Burp Suite, que é uma ferramenta popular para web hacking.
  • Explorar a automação do Windows COM para realizar um ataque do tipo man-in-the-browser.
  • Obter dados de uma rede, principalmente de forma sub-reptícia.
Técnicas usadas por pessoas da área e desafios criativos ao longo de toda a obra mostrarão como estender os hacks e criar seus próprios exploits.Quando se trata de segurança ofensiva, sua habilidade para criar ferramentas eficazes de forma imediata será indispensável. Saiba como fazer isso em Black Hat Python.

Review

Mais um livro da nossa parceria com a Editora Novatec para review e indicação aqui no blog. Vamos lá!

Conheço pouco sobre o autor, mas pelas pesquisas que fiz e pelo que li dele no próprio livro pela apresentação do Charlie Miller (que todo mundo já deve saber que é uma das pessoas da área que mais admiro), o cara é bom, e tem uma grande experiência na área.

O livro é originalmente da Editora No Starch Press, mesma editora do livro Pentest da Georgia, que já fizemos review aqui. Olhando para os dois livros e outros desta editora é possível notar um padrão entre eles, talvez façam parte de algum tipo de série ou coleção. Pretendo ter todos, estou gostando da qualidade e do conteúdo dos livros.

Antes de mais nada, se você não vê vantagem ou necessidade de programação, leia o post "A importância da programação". Talvez esse post clareie um pouco sua mente. Este post também fala um pouco sobre Python, uma linguagem que uso e defendo como uma linguagem muito versátil e muito boa pra nossa área, entre várias possíveis áreas em que Python se da bem. Outra coisa que pode te convencer a estudar programação é o velho ditado, que vai desde newbies e script kiddies até black hats e white hats: Para ser um hacker de verdade você precisa deixar de usar ferramentas e fazer as suas próprias.

Concordo com esse ditado até um certo ponto. Saber programação vai abrir muitas portas e aumentar significantemente sua área de atuação, mas tem alguns pontos que não é necessário reinventar a roda, por exemplo, você não precisa reinventar todo um Framework para alguma coisa se já existe um. Você pode usar o framework pronto em seu favor.

Agora sim, sobre o livro, ele é surpreendentemente pequeno, comparado com o livro Pentest. Até estranhei quando vi uma caixa fininha me esperando. O livro tem cerca de 200 páginas, mas são muito bem aproveitadas. Como o livro diz na capa, "Programação Python para hackers e pentesters", o autor não se preocupa em explicar conceitos de programação, Python ou rede. Este não é um livro para você aprender a programar ou conhecer Python, é esperado que você já saiba programar e conheça a linguagem.

Já que o livro foca no assunto não é necessário muitas páginas. Existem outros livros sobre programar em Python de modo geral e focado em segurança. Todos eles perdem muito tempo e muitas páginas ensinando a programar e mostrando a base do Python, ou seja, sobra pouco espaço para aprofundar no tema. Normalmente estes livros mostram exemplos simples, como por exemplo, scripts para fazer varreduras de portas, crawlers web e uma ferramenta para bruteforce. Este livro já começa com uma ferramenta similar ao netcat, e evolui rapidamente para códigos extremamente complexos como malwares e ferramentas inteligentes para os usos mais criativos.

O autor demonstra fragmentos ou até programas inteiros e se necessário, explicando linha a linha. Faz parecer fácil desenvolver aquelas ferramentas e malwares.

Eu sei programar (isso não quer dizer que sou um bom programador :D ) e conheço Python. Até a metade do livro consegui acompanhar bem, e a cada pedaço de código eu pensava "porque nunca pensei nisso antes!", após a metade comecei a ter um pouco de dificuldade, passou do meu nível de conhecimento e tive que estudar um pouco para por tudo aquilo em prática.

E então para finalizar, recomendo que você comesse a estudar programação, se já programa, recomendo que vá para o Python, e se já está no Python recomendo este livro. Sem dúvida que você vai aprender muito e ter diversas idéias lendo este livro.

Se você não tem conhecimento em programação ou em Python este livro não é pra você, por ir direto ao assunto e não dar nenhuma base. Já estou lendo e pesquisando por bons livros sobre programação e Python básico para você que está começando agora.

Caso tenha ficado interessado no livro ai vem a boa notícia, o livro é barato, R$ 65 por um livro desses é um preço justo. E não se esqueça de comprar no site da Novatec que você tem desconto. O cupom de desconto BRUTALSEC vai dar 20% de desconto em todo o site e é válido até o fim do ano.

quarta-feira, 30 de julho de 2014

E ai pessoal!

Hoje vou indicar uma ferramenta bem interessante para forense no iOS.

O iOS Forensics é uma ferramenta desenvolvida em Python para analisar e recuperar dados de dispositivos iOS. A ferramenta é livre e gratuita, desenvolvida pela OWASP.

Dependências da ferramenta:

Linux

  • OpenSSH
  • sshpass
  • sqlite3
  • Python >= 2.6
  • Python-magic
  • plistutil

Dispositivo


  • Dispositivo com Jailbreak
  • OpenSSH
  • Wifi habilitado
  • Conectado via USB no firmware mode


A ferramenta parece ser muito boa, mas apenas para dispositivos com jailbreak. Para dispositivos com o sistema ainda íntegro não acredito que exista um meio simples ou possível de obter os dados.

Mais informações e download da ferramenta no GitHub.

segunda-feira, 16 de junho de 2014

E ai pessoal! Meio deserto por aqui hehehe. Andei meio ocupado mas agora liberou um pouco e venho com um post sobre o assunto que manteve ocupado, programação.

Todos as pessoas que um dia estudaram, estudam ou irão estudar alguma coisa relacionada a computação vão cair na programação, e sem dúvida boa parte vai odiar. Mas porque todo mundo odeia programação? A maioria das pessoas que eu convivo respondem algo como: "Eu vou trabalhar com segurança e não ser programador". Esta resposta se estende para outras áreas como por exemplo gerencia de TI, manutenção e por incrível que pareça, desenvolvimento de jogos. Na verdade toda área que não tem como objetivo primário o desenvolvimento de sistemas acaba caindo nessa resposta, eu mesmo odiei programação por um bom tempo, e hoje ainda não gosto, mas aprendi a respeitar e valorizar sua importância. Num futuro próximo eu provavelmente goste de programação.

Hoje em dia eu sou a favor de que desde pequenos as pessoas tenham contato com programação e algoritmos, poderia ser uma matéria regular da escola como português e matemática, mesmo que no fim das contas a pessoa não venha a utilizar isso para nada, se tudo que aprendemos na escola fosse útil hoje seriamos todos físicos, filósofos, sociólogos, químicos e etc. As pessoas não precisam ser programadores experientes e desenvolverem sistemas complexos ou a próxima rede social de sucesso, mas é bom saber como um computador funciona, como pode funcionar, e quem sabe até resolver problemas um pouco mais complexos.

Um ponto positivo de saber o mínimo de programação (e ser forçado a estudar isso) é o aumento na capacidade de raciocínio lógico, isso quer dizer, programar incentiva a pensar, coisa rara hoje em dia. Quem trabalhou com suporte e/ou assistência técnica sabe como pensar poderia fazer a diferença, quem sabe até acabar com os terríveis chamados idiotas...


Agora, aos que tem boa vontade, que estão começando a estudar ou querem aprender programação, por onde começar? Simples, primeiro de tudo pegue algumas aulas de lógica de programação, matemática para programação (talvez não tão necessário) e algoritmos. Após isso recomendo que procure, pratique e teste diversas linguagens de programação. Eu por exemplo sempre odiei programação, e em todos os contatos foram sempre as mesmas linguagens, Delphi, C e derivados, e Java. Onde ia dava de cara normalmente com esses três. Depois de muito tentar e por algum motivo não aprender de modo nenhum a programar nessas linguagens resolvi procurar outras. Neste momento conheci PHP, Perl, Objective-C, Shell Script (é considerado uma linguagem de programação?), Python e outras. Tudo deu muito errado até Python, onde estou conseguindo aprender algo.

Obviamente aqui você já percebeu que eu vou fazer propaganda do Python, mas veja aqui o porque de Python ser uma boa linguagem de programação para começar.

A grande pergunta, porque estudar Python? Porque é simples e incrível! Pronto, já pode parar de ler e sair programando. :)

Agora, caso queira saber um pouco mais sobre leia até o final.

Além de ser incrível, Python é simples, isso quer dizer que você tem menos coisas para se preocupar e pode focar em "pensar como um programador". Por ser simples você não precisa perder tempo de estudo lendo e decorando a função de cada caracter, de cada estrutura. Python é bem legível, praticamente como ler um texto (em inglês, obvio).

Depois que você entender como programação funciona pode migrar para outra linguagem que atenda melhor seu uso, mas Python é um bom modo de começar, tanto é verdade que a NASA usa.

Pela estrutura ser mais simplificada, a curva de aprendizado é muito maior do que as outras linguagens, com um dia focado de estudo pode-se desenvolver um joguinho simples (ta, talvez um pouco mais de um dia). Mas para ilustrar o que eu estou tentando dizer vamos a um exemplo prático. Vamos fazer um simples programa que mostra na tela a frase "Hello World", a propósito, se você programa em qualquer linguagem e este não foi o seu primeiro programa você já começou errado :).

Em uma linguagem com uma estrutura um pouco mais robusta como C++ teríamos que fazer algo assim:
#include stdout
int main()
{
std::cout << "Hello, world!\n";
}

Já em Python podemos fazer assim:
print "Hello World" 

Simples, não?

Outra coisa interessante do Python é que você não necessita aprender a usar uma IDE, você pode escrever seu código em um arquivo de texto e executar ou simplesmente digitar diretamente no terminal interativo do Python.

Agora mais focado no pessoal que estuda segurança, você já usou o Backtrack ou alguma outra distro para pentest, forense e etc? Já parou para olhar a quantidade de ferramentas com o sufixo ".py"? Então, são todos desenvolvidos em Python. Ai você me pergunta, se já ta tudo lá, pra que eu preciso aprender Python? Simples, você pode contribuir com os projetos, alterar algo para seu uso, ou até criar suas próprias ferramentas. Como alguém uma vez me disse, "você nunca vai ser um profissional completo se não desenvolver suas próprias ferramentas para resolver seus próprios problemas."

Termino esse post com a seguinte situação, você precisa atacar/auditar uma certa máquina mas não tem nenhum exploit para ela, vai sentar e esperar sair um ou vai desenvolver seu próprio?
Subscribe to RSS Feed Follow me on Twitter!