Python Programming for Hackers and Pentesters

Aula 1 · Python Programming for Hackers and Pentesters

Transcrição do áudio

É coleguinha, muitos ali aspirantes a ha que eles me procuram e naturalmente um grande medo que eles têm é eu vou ter que programar, isso é um grande medo em minha vida e eu te digo não só você vai ter que programar mas como você vai ter que ser melhor que um programador profissional, nós não estamos numa área aqui de pouco conhecimento, aqui é uma área aqui o conhecimento ele tem que transbordar, rapidamente um hacker ele abre um terminal e abre uma ferramenta de edição mas um vim ou um nano que seja e rapidamente põe um script em um servidor, rapidamente ele constrói soluções e lembrando que o mundo hacker a teoria do que é hacker é criar caminhos e a programação é uma como eu posso dizer assim é uma ferramenta muito útil para se criar caminhos, eu vou abordar aqui programação em Python para pentesters porque eu tenho o curso de pentest que está em desenvolvimento já tem mais de 20 vídeos, então eu pensei cara eu já preciso que esses caras programem pentester precisa programar assim, a grande diferença de um lumber de um script key de um hacker profissional é que o hacker profissional cara ele sabe programar e para caralho por isso que eu não vendo esse curso na Udemy, olha o palavrão, é coleguinha, esse livro aqui é muito bom cara ele é o recomendado do meu ponto de vista, está um pouco defasado mas eu vou adicionar aqui a atualização que o que está aqui naturalmente disponível em 2026, eu acho que esse hacker, esse livro deve ter mais ou menos já uns oito anos, bom vamos lá, black hat, Python, Python programing for hackers and pentesters, esse é o livro, primeiro capítulo é o set up do ambiente, então eu vou falar do livro, eu vou colocar exemplos do livro e todo o conteúdo desse material é baseado em livro, livro é o conhecimento, com internet é o conhecimento também, mas o livro é um conhecimento muito consolidado, exemplo não é qualquer cabaço que vai escrever um texto e jogar aqui num livro, para estar no meditório ele passa por um clivo, passa por uma avaliação, não é assim, na internet qualquer um que escreve qualquer coisa, então sempre estou me baseando em livros e esse é o livro daquilo ISBN caso queira comprar, mas se você dá uma procura, fazer uma procurinha decente aí no archive.org você acha, mas se comprar é melhor ainda, eu gosto muito de ler em papel, legal? devido a minha idade avançada, curso hacker.com.br você então pode falar comigo, ai quem eu sou, eu sou não importa web, porque não te importa cara, o que importa é que eu vou lhe ensinar Python para hackers, básico o que é um if, o que é uma variável, pô, desgrilo, tá bom você pode ensinar, o livro não ensina e não tem que ensinar, porque isso é o básico que você aprenderia ali em qualquer como eu posso dizer curso de guanabaras, curso básico do básico, vamos falar sobre o setup, sobre o ambiente Python caso queira me achar eu estou lá no site procura por a ed online online, bem radical, vamos falar do ambiente, vamos falar de requisitos, vamos mostrar aqui naturalmente o Python para vocês, legal? Lembra-se que Python não tem nada a ver com cobra, já começa errado, pô, desgrilo, já estou descendo o pau na capa do pô, Python tem nada a ver, tem mais a ver com andorinha, Python tem muito mais a ver com andorinha do que com cobra, só para você ter uma noção, e Python é uma coisa né, acho que cobra é outra, bom, não me importa, Python tem esse nome porque aonde ele foi criado preste atenção, toda tecnologia nova recebi o nome de um programa de televisão, como nada dava certo ou nada vingava, era tudo uma grande piada, bom, acontece que Python vingou, ou seja tem a ver com o Python, o Monty Python, tudo bem? Monty Python, e aí cara essa joça vingou bicho, e o nome ficou e aí na literatura passou você a colocar a Python ali como a imagem, tem nada a ver com a Python, é relacionado a Monty Python, e Monty Python não tem a Python, Monty Python na verdade tem o que? Tem ali o Andorinha né, a cérebro pergunta qual a velocidade da Andorinha carregando um cuco cara, muito louco, assista que você vai entender, bom, você vai também não vai gostar porque é uma porcaia, vamos lá, você pode utilizar o Python em qualquer OS Linux aqui tá, qualquer, qualquer OS Linux, Debian, Kali Linux, o livro utiliza Kali Linux, e ele puxa algumas bibliotecas do Kali, nós podemos instalar naturalmente qualquer distribuição, já falei isso pra vocês, lembrando que o Kali ele é o sucessor ali do Backtrack Linux, uma distribuição muito foda e que as línguas em 2026 dizem que tá voltando cara, será que vamos ter uma briga Kali Kali Backtrack? Ah, que venço melhor, eu tô cagando, por um motivo simples eu uso o que tiver que usar o que tiver na mão, simples assim, versão do Python, Python 3 traço traço version, todo Linux moderno é Python 3, no Kali Linux os caras fizeram uma merda, então vou puxar aqui, já não vou colocar aqui um Kali Linux pra subir aqui, essa máquina é só uma máquina pra dar aula, não é minha máquina de trabalho, todo mundo sabe disso, tem um computadorzinho só pra dar aula, cara, depois que vazou a imagem do meu sistema operacional, cara, em aula e aluno ficou enchei do meu saco, por isso que eu não ia desculpar aí o DM, né, você viu? Eu falei, uma mulher que encheu o saco lá rapaz, porque viu uma imagem lá no meu sistema operacional, acho que eu tinha escrito assim, fábrica de Mowers, a criança foi lá cara, porra cara, que burrice eu fiz, hein, e eu escrevi assim, fábrica de Mowers um pouco antes, né, um pouco antes cara, que merda, ó, LS, traçuel, barra, desculpa, barra, quer ver? O S.R. Bin, Python, pera aí, Python, o paquetasterisco, essa joça, então olha só cara, o Python, nunca ali Linux, ele tem a versão 2 e a versão 3, porque há diferenças na sintaxe da linguagem do Python 2 pro Python 3, e o mundo hacker lá em 2015 abraçou o Python, ah, coleguinha, gostou, hein? Gostou da cobra, hein? Abraçou o mundo Python, colega, muito mais do que as equipes de TI, as equipes de TI abraçaram o Python tarde demais, o mundo hacker ele abraçou muito antes, e ele é um binário, naturalmente esse 3 aqui também, ele é um binário, tá? Legal, então tem Linux que tem as duas versões, tem Linux que só tem a versão 3, os Linux modernos só possuem a versão 3, muita coisa vai dar certo no Kali Linux, muita coisa vai dar errada no seu Debian 13, porque o seu Debian 13, seu Debian 14, seu Fedora acho que tá no 48, se não falha memória, o 44, lembrei, fudeu, tá lá no meu Qubes, esqueci de ver, bom, o que acontece? Eles não vão ter, e aí vai dar uns pipouco com os scripts antigos, tudo bem? O mundo tá evoluindo, o mundo tá atualizando esses scripts em Python, e isso é importante, beleza? Então, Python 3 traço, traço, versão, ele vai te mostrar a versão, Python 3 é esse cara aqui, desculpe, desculpe, aqui ó, aqui ó, esse cara é o Python 3, se você olhar e você manja tudo de Linux, porque você faz meus cursos, o curso hacker lá, tem as disciplinas, você vai ver que é um link simbólico, olha esse L aqui, ele é um link simbólico, quer dizer que esse link simbólico aponta para o Python 3.13, o mundo Python, na verdade no mundo Python você pode ter múltiplas versões do Python, então você chama o Python de forma adequada, vamos mostrar pra vocês, legal, eu poderia simplesmente chegar aqui e digitar, pera aí, deixa eu mudar minha cadeira aqui de posição, legal, Python 3, e aí naturalmente eu estou chamando Python 3.13, tudo bem? Aí eu dou um exit, e aí eu saio, legal, eu poderia muito bem chegar aqui, Python 3.13, nada me impede de chamar diretamente uma subversão, ok? Lembrando que eu apoio a subversão, é mundo radical, quem assiste ali, tem as minhas videoaulas de monero, saem ali um bando de anarquistas, então conforme eu falei você pode listar as versões, veja isso aqui, é um Debian 13 atualizadíssimo, está saindo Debian 14, fiquei sabendo, repare que o Debian 13 ele tem ali, o também o Python 3.13, repare que um link com o Python 3 aponta para o executável ali, Python 3.13, legal? Beleza, é comum você precisar do Python, Python sem nada, sem a versão 2, sem a versão 3 aqui no final aqui, então você pode, sudo ln traço aqui, Python 3.13 que é o alvo, target, e aqui é o link que você está criando, o Python, se você chama Python, ele vai chamar o Python 3.13, é assim que nós setamos qual versão de Python nós queremos, então por exemplo, digamos que amanhã lance o Python 3.14, você pode muito bem instalar o Python 3.14, manter o Python 3.13 e simplesmente excluir esse link simbólico e recriar esse link simbólico para o Python 3.14, bem como destruir esse link, o SRB em Python 3, excluir ele e recriar ele apontando o Python 14, e assim que nós trocamos a versão, cara, isso é muito importante sim, cara, nós vamos precisar com certeza de ter isso que instalado, tá? O Python 3 se tapetou, que vão ter várias ferramentas ali para fazer instalação do ambiente, preparar nosso ambiente Python, Python 3 pip, que é a versão 3 do pip, que não vem por padrão no mundo de Hebbian, por exemplo, lembra aos senhores que esse livro é anterior à ideia de environment, então pode ser que eu precise recriar aulas extras para explicar isso para vocês, que é criar ali uma pequena caixa de areia para os scripts em Python, se você não sabe o que é uma caixa de areia, leia o livro de sistemas operacionais modernos do tannibal, vai lá e le, você vai entender, também instale um módulo para inclusive fazer um teste, que é o GitHub 3, legal, bom, é muito simples, depois você simplesmente importa ele e dá tudo certo, então vamos lá, vamos fazer aqui a instalação, vamos copiar talvez esse Linux, já tenha, legal, já tem tudo instalado, muito legal, eu vou aproveitar, já que eu estou nesse Hebbian aqui, eu tenho certeza que esse Hebbian não tem, vamos colocar aqui, vou entrar suy, para ele não me perguntar nada, vai embora meu filho, instala esse treco todo aí, legal, repare que você não precisa obrigatoriamente ter o calho, não precisa obrigatoriamente, bom, GitHub 3 no fármula memória, clear, vamos colocar aqui, clear, vou agora fazer então essa instalação aqui, vamos lá, primeiro vou aqui no meu terminal, eu estou com o terminal onde, aqui, e aí ele vai fazer a instalação, nós vamos precisar desse pacote lá no capítulo 7, mas se deu certo, o Python 3, ele vai me chamar o modo que interativo, eu vou colocar import, é git hub 3, e deu certo, se não daria um pau, se não tivesse instalado daria um pau, deixa eu ver se o request está instalado aqui, import, o request é instalado, então legal, são pacotes que estão instalados, exit, e aí eu saio, então vamos lá no nosso Kali Linux, se acontecer isso aqui, e aí você coloca isso aqui, tem como você alterar o ambiente, mas eu não vou alterar esse ambiente aqui não, legal, está lá cara, está instalado, mesma coisa, Python 3, import, git hub 3, importou, você viu que deu uma segurada, e aí exit eu saio, legal, eu vou colocar aí do modo de execução, eu fiz isso só para testar cara, só para testar o ambiente, o legal, então vamos lá, estou aqui com um Kali então, legal, então você pode instalar esse IDE, IDE é uma ambienta que ajuda, eu obrigo meus alunos a usar bloco de notas, para programar em Java, por isso que eu tomo tanto processo, cara, um ambiente desse IDE cara, ele vai te ajudar muito, mas o problema que o IDE pode te viciar, e nem sempre você tem o IDE na mão, principalmente o Hacker, o Hacker nem sempre tem um ambiente cara, muitas vezes ele tem um que, um terminal, tela preta, e pau na máquina, digita essa jossa aí, e aí ele não sabe nada, porque ele nunca programou de verdade, sempre foi o IDE que programou para ele, tome muito cuidado com o IDE e com inteligência artificial, se você for no wing, o air.com, você vai aqui em pro, baixa a versão pro, a versão 11, você vai fazer um download de um arquivo wing pro 11, tá vendo? O 11 aqui, no dia que for 12 é 12, e aí você altera o 12 aqui, e aí você vai até o download sudo dpkg traçuí wing pro 11, legal, vai mudar esses números, dá um enter, ele vai instalar para vocês, baixa a versão débia, se você quiser você pode baixa a versão pro Fedora, se você tá com Fedora, se não é obrigada tá com Cali ali no que se coleguinha, como que o executo ele, de qualquer ponto do seu sistema opressional, chama o wing 11, e aí ele chama a interface gráfica, interface gráfica é bacana, você pode utilizar o sublime, o sublime ele é interessante, ele não é o bem o IDE como esse cara, também não adianta você baixar o sublime em chele de plugin, que vai fazer o que esse IDE faz, então usa o sublime no osso, como ele vem, sem quase nada, só o editor de texto e uma tree list, desculpa, uma árvore de arquivos, vamos colocar assim, rapaz eu coloquei duas vezes a mesma imagem, tá bom, você tem que executar este comando aqui, você tem que executar este comando aqui, para baixar uma chave, isso aqui é uma linha só, para você baixar uma chave, para então poder adicionar no source list, uma list, é um arquivo de atualização, tem como você baixar aqui no sublime, um arquivo ponto deb, caso você precise, pode vir aqui, cara você vai ralar um pouquinho, mas você vai achar o link aqui em algum lugar, não lembra onde ele está, porque eu já baixei, o problema, quando você baixa um arquivo ponto deb e faz a instalação, ele fica te enchendo a paciência para você atualizar, é meio chato, vamos usar o padrão dos caras, que eles explicam lá, isso aqui está naturalmente bem explicado logo aqui, se você usa deb, é assim, se você usa o pacman, é assim, se você usa o iam, é assim, se você usa o dnf, é assim, legal? tem aqui todos os roteirinhos, eu já separei o roteirinho que eu vou usar, então eu vou rodar esse cara aqui também, legal, vou rodar nos dois, eu sempre preciso trabalhar com os dois, é aquilo que eu já falei para vocês, eu não sou amarrado, um sistema opressional, mulher eu só tenho uma, mas linguagem de programação eu tenho um monte, que ela não ouça isso, porque que eu não posso vender esse curso na UDM, não vai rolar cara, eu vou ser expulso na primeira semana, aqui ó, legal, repara que estava operacional em ambos os sistemas operacionais, aqui cara, naturalmente um apt-get update cara, e o install sublime text, vou executar nos dois aqui, naturalmente, ele vai fazer aqui, vamos lá no nosso calilênux, e aí ele vai também, eu meti um y aqui para ele não ficar me perguntando, vai embora, está no extract para mim, legal, como que eu chamo sublime, eu chamo assim, sub l, pronto, esse é o sublime, esse é o sublime, tudo bem, legal, beleza, então está aqui como você instala, vou usar o sublime, eu chego lá no meio do livro, o livro faz, você vai ser obrigado a usar isso, não é nem a pau, vou copiar isso aqui, que é o exemplo que o cara coloca, não gostei, vamos lá, cd barra tmp, que é o diretório de fazer merda, sublime a exemplo tmpy, Python é py, enter, e aí ele me abre o exemplo tmpy, certo, eu estou aqui no Linux, botão direito, sempre no topo, sempre no topo, e aí eu posso clicar aqui, posso clicar aqui, posso clicar em ambos, vou aumentar um pouco a fonte aqui, e vou dar, naturalmente aqui, uma esticada aqui, isso aqui está uma bosta, por que isso aqui está uma bosta, vamos lá, primeira coisa, você precisa, você pode executar o Python da seguinte forma, qualquer coisa Python assim, Python 3 exemplo, oh, pera aí, pera aí, então 3, barra exemplo, py, certo, eu acho que não salvei, ele não existe, ainda tem que salvar aqui, agora ele existe, quer ver? Agora ele existe, legal, então tá aqui, eu posso chamar ele assim, eu posso chamar ele assim, normalmente, ou eu posso chamar ele assim, quer ver? Eu posso muito bem chegar aqui, vamos pegar um caminho para mim, primeiro, file, barra, osr, bn, Python, 3, legal, eu quero pegar isso aqui, eu posso muito bem copiar isso aqui, só para mostrar para vocês, jogar um shellbang aqui, isso aqui chamar de shellbang, e aí eu falo que o seguinte, isso que vai ser executado, vai ser executado com o Python 3, se eu faço isso, eu posso dar um chmod, mais x exemplo, e chamar o meu script assim, diretamente, então você vê pessoas chamando script diretamente, sem passar aqui, Python, sem ser assim, você vê pessoas fazendo isso, e você vê pessoas fazendo isso, porque é somente assim, porque ele colocou shellbang aqui em cima, legal? Tá, legal, então tá aqui, o que que esse cara faz? Tuas funções, chamamos de função, outra coisa, ponto e vírgula, ponto e vírgula, ponto e vírgula, ponto e vírgula, dois pontos, ponto e vírgula, ponto e vírgula, certo? Então cara, fecha a linha com os pontos e vírgula, pelo amor de Deus, porque você vai aprender a programar C mais mais comigo, então já faz um código direito aqui para você naturalmente programar comigo lá em C mais mais, outra coisa, coloca um espacinho aqui, bicho, sério mesmo, não cola não, porque quem tem dyslexia, ou quem é um velho cego como eu, que sou os dois, eu tenho problema, coleguinha, legal? Soma, converte inteiro, tudo bem, esse exemplo dele é que vai funcionar, quer ver? Esse exemplo dele é que vai funcionar, tá? Ah, ele não escreveu nada, né? Quando modei imprimir. Tá? Simplesmente assim, opa, espere aí, salva esse cara aqui. Tá lá, três, depois eu explico melhor essa função aqui, mas isso aqui não tá legal não, cara, tá legal não. Vou ter que criar, na verdade, tá? MEN, TEF MEN, aí eu pego e faço assim, tá? Você pode usar tab ou espaço. O pessoal fica puto se você usa espaço. Por que que eu uso espaço? Porque eu escrevo livro. Se eu coloco tab aqui, quando eu jogo isso lá no meu livro, ele cagalha todinho o meu livro, o estilo do livro. Então eu aprendi a usar quatro espaços, não o tab, beleza? Aonde que você configura isso? Você vê que em Preferências, pra você deixar automaticamente um ou outro, Settings, ele vai abrir esse arquivo nojento aqui, cara, que eu gosto nojento. Vamos achar que o Ctrl-F é tab, o cara aqui, Ctrl-F tab, beleza, aqui, aqui, oh, caramba, pera aí. Eu fiz merda, hein, aqui, oh. Eu copio isso aqui e colo aqui, botro, tá? Ele converte os tab em espaço pra mim, porque eu gosto assim, cara, agora se você gosta de tab, mantenha o tab. O que você não pode ter é tab e espaço. No meu caso, eu configurei, se eu dou um tab, ele já coloca quatro espaços, certo? Porque eu escrevo muito livro. Bom, se eu rodar, não vai acontecer. Se eu rodar, isso aqui não vai acontecer. Nada. Por que que não aconteceu nada? Porque ninguém chama o MEN. Quando você compila algo em C++, ou quando você pré-compila numa linguagem intermediária em C-Sharp, ou em Java, você automaticamente define quem tem o MEN e aquele mecanismo chama o MEN. Então, nós podemos trabalhar de uma forma mais estruturada, organizada e tudo mais, ou nós podemos trabalhar simplesmente jogado como o autor colocou no texto. Beleza? Então, nós vamos fazer esse negócio aqui ser direito. Beleza? Eu posso, no futuro, eu vou construir classes e orientação ao objeto. Então, esse tipo de usar MEN como uma função e chamar ele assim, if name foi igual a o MEN. Eu vou chamar o MEN. Por que isso? Sempre quando eu rodo um script, é criado uma constante no sistema. Então, se eu rodo esse script no terminal, ele encarrega isso aqui com a palavra MEN. Isso aqui, certo? E aí eu chamo o MEN. Só que se eu importar esse script em outro script, eu não quero que ele rode o MEN, então ele não vai rodar o MEN. Ou seja, eu poderia fazer uma classe aqui, fazer toda uma estrutura, uma organização e importar como uma biblioteca. E aí ele não rodaria o quê? Isso aqui. Ficaria só as funções sendo importadas na memória. Ou eu poderia chegar aqui no terminal e executar como eu estou executando aqui. Então, ele chamaria esse if porque nem me viria MEN ao chamar aqui pelo terminal. E ele chamaria a função MEN e a função MEN, então, iria fazer esse jabaculê de rodar isso aqui. Legal? Bom, agora que está assim, eu posso executar o 3-tala. Faça assim. Ela é uma programação muito mais organizada do que está no livro. Legal? O livro, ele está lá para atingue-se no básico, né? O professor é aquele cara que te leva ao limite, a um lugar muito maior. Isso aqui é o seguinte, como funciona isso? O MEN chama o soma. Isso aqui não é oriatação de objetos. Esse tipo de programação é chamado de programação estruturada. 99% de tudo que você vai encontrar no mundo Linux de Python no sistema opcional é estruturado. 99% do que você encontra em websites feitos em Python é orientado a objetos. Entenderam? Então, é como se a galera fizesse um serviço muito porco quando é aquela galera de TI, né? Porque o certo é usar a orientação de objetos e usar toda uma organização que um programador sabe fazer. Então, só ali você já consegue ver quem é e quem não é o programador. Beleza? Então, ele é estruturado, então eu chamo o soma e a soma vai converter dois números inteiros. Cara, eu poderia ter jogado o número inteiro aqui. Poderia. Ele quis fazer assim não porque o Python não permite, é que ele quis te mostrar que dá para você de dentro de uma função chamar outra função. Só isso, cara. Só isso. Só isso. Só isso. Ele quis só te mostrar que dá para você fazer. Tudo bem? Então, eu chamei o MEN, o MEN chamou o soma. Tá aqui. Ele passou texto com números, tudo bem? Para mostrar o converti-wint ser chamado e uma conversão aqui, legal? Beleza? Int é uma função interna do Python. Python ele é, naturalmente, estruturado e dá para você programar ele orientado objetos com parte da biblioteca built-in estruturado. O que é built-in? Implicitamente já está no Python. Então, por exemplo, implicitamente já está lá no Python, o int que converte um texto para, por exemplo, um string, é um texto no caso, para o int, está lá o str, que converte o int para um string, entre outras funções. Tudo bem? Legal. Python, você não tem que definir se a variável é inteira, se a variável é texto, ela é do tipo ducktype em tempo de execução. Se eu recrio a variável, ele recri uma nova posição de memória e coloca a posição anterior no garba de colector para ser eliminado no futuro. int mais int só pode resultar num int. E aí ele fez assim. Tudo bem? Legal. Simples, aí ele retorna a soma de dois textos e aí ele vem aqui e coloca. Tudo bem? Legal. Eu gostaria de passar isso aqui como argumentos. Então, eu vou mostrar para vocês daqui a pouco, mais para frente, como você recebe argumentos de teclado e, naturalmente, vai ser um código muito melhor que esse aqui. Beleza? Só para você ter uma noção do que é um Python. É coleguinha, parece que o Python, ele é apaixonante. Próxima vídeo aula e vou falar sobre Network e aí nós vamos melhorar nossos scripts. A ideia é ir te ensinando o Python à medida que nós vamos usando o Python. Você não vai ter extensas aulas de introdução ao Python, o if, o else. Não, cara, eu vou ficar injetando em vocês aqui conhecimento. À medida que nós vamos usando. Espero que eu não esqueça nada. Até o nosso próximo vídeo. Até mais. Tchau.
Voltar ao curso