Ir para conteúdo
  • Cadastre-se

Leandro Fróes

Apoiadores
  • Total de itens

    123
  • Registro em

  • Última visita

Reputação

17 Good

Sobre Leandro Fróes

Últimos Visitantes

1.112 visualizações
  1. Leandro Fróes

    Malwares que identificam VM

    Boa tarde @DsMlw, tudo bem? Legal que está iniciando no curso =). Sobre "pular" a técnica... isso depende muito da técnica em si, saca? Não tem um método genérico pra todas, pelo menos eu não conheço. Você tem mais alguma informação sobre? Abs
  2. Leandro Fróes

    ARQUIVOS ELF

    Entendi... Nossa comunidade tem foco no estudo das base da engenharia reversa em si, no porquê das coisas e na inserção de novatos na área. Como você já deve ter visto, temos vários cursos que tratam do assunto como por exemplo o CERO e o de Programação Moderna em C. Aparentemente você quer contratar os serviços de alguém, mas a maioria aqui tá estudando. Só avisando caso não encontre exatamente o que procura aqui. 😉 De qualquer forma, seja bem vindo! Espero que dê sorte e resolva seu problema! \o/
  3. Leandro Fróes

    ARQUIVOS ELF

    Bom dia @Jaguar , tudo bem? Poderia dar mais detalhes sobre o que pretende? É um crackme? algum programa que você fez ? A pergunta foi meio solta demais 😃 Abs
  4. Leandro Fróes

    Pythonicos

    O que é o Python? Python é uma linguagem de programação de alto nível, interpretada e de script. Foi lançada por Guido van Rossum em 1991 e nos dias que hoje Python está em todo lugar. É de longe a linguagem mais lembrada e utilizada quando o assunto é automatização, API, praticidade e resolução rápida de problemas. Por que estudar Python? Além da linguagem ser extremamente requisitada no mercado de TI como um todo possui também aspectos modernos e poderosos para o aprendizado no geral. São eles: Sintaxe simples e de fácil leitura, facilitando o aprendizado Fácil integração com APIs. Hoje em dia é muito difícil achar algum serviço que possua API e não tenha integração com a linguagem Python Facilita a criação de tarefas automatizadas, tendo em vista sua simplicidade Possui um amontoado de bibliotecas que ti permitem trabalhar com praticamente tudo o que imaginar: web, sockets, crawling, arquivos, machine learning, etc. O Treinamento Este curso foi feito e gentilmente disponibilizado gratuitamente pelo usuário @Matheus Bernardes . Seu conteúdo gira em torno não só da linguagem Python em si, mas também de conceitos extremamente relevantes para a área que vão desde sockets e crawling até boas práticas na hora de fazer seus scripts. O curso está no YouTube, no nosso canal Papo Binário, sem nenhum custo. Segue a lista: Aula 00 - Introdução Aula 01 - Preparando o ambiente Aula 02 - Sobre Python Aula 03 - Tipos de Dados Aula 04 - Tratando Valores Aula 05 - Primeiro programa Aula 06 - Condições Aula 07 - Condições (if else elif) Aula 08 - Condições (while) Aula 09 - Condições (for) Aula 10 - Listas Aula 11 - Trabalhando com Listas Aula 12 - Parece com Lista mas é Tupla Aula 13 - Dicionários Aula 14 - Manipulando strings (parte 1-2) Aula 14 - Manipulando strings (parte 2-2) Aula 15 - Funções Aula 16 - Módulos Aula 17 - Trabalhando com Módulo os Aula 18 - Lendo Arquivos Aula 19 - Escrevendo Arquivos Aula 20 - Organizando Arquivos Aula 21 - Arquivos zipados Aula 22 - Subprocess Aula 23 - Servidor TCP Aula 24 - Servidor UDP Aula 25 - Cliente TCP Aula 26 - Cliente UDP Aula 27 - Cliente FTP Aula 28 - Cliente SSH Aula 29 - Envio simples de e-mail Aula 30 - Envio de e-mail plus Aula 31 - Envio com anexo Aula 32 - Requisitando servidor web com socket Aula 33 - Lib Requests Aula 34 - Burlando votações (Parte 1) Aula 35 - Burlando votações (Parte 2) Aula 36 - Burlando votações (Parte 3) Aula 37 - Crawleando as coisas Aula 38 - Iniciando com Scapy Aula 39 - Scripts com Scapy
  5. Leandro Fróes

    Soluções do Flare-on 2018 divulgadas

    Anualmente a FLARE (FireEye Labs Advanced Reverse Engineering) promove um dos maiores CTFs de Engenharia Reversa do mundo, o Flare-on. Neste ano ocorreu a décima quinta edição e, segundo a própria FireEye (empresa da qual organiza o desafio) declarou que este ano foi o mais difícil de todos e que não fará mais desafios assim, ou seja, quem jogou este ano teve uma experiência e tanto, não acham? 😉 O desafio oficial já foi encerrado e a resolução dos desafios já foi divulgada, mas ainda assim você ainda pode fazer os desafios para treinar!!! O FLARE além de dar prêmios para quem resolver os 10 desafios também costuma contratar para o time de Engenharia Reversa, incrível né?! Uma coisa interessante a se notar é que não há brasileiros na lista de melhores classificados, acredito fortemente que isto é porque nem todos conhecem o desafio e não porque não somos capazes .😄 Você fez algum dos desafios? Compartilha sua resolução com a gente no portal ou no Discord!
  6. Leandro Fróes

    Comando find e suas miscelâneas

    Após ver sobre o comando find no nosso canal Papo Binário decidi estudar um pouco mais sobre o mesmo. Revisando estas anotações pensei que seria interessante compartilhá-las, tendo em vista que o find é um comando extremamente poderoso. Alguns dos parâmetros já foram abordados no vídeo, mas vou repassar alguns aqui, não custa nada, não é mesmo?! Este comando pode ser útil para diversas tarefas, dentre elas investigação, administração ou mesmo aprendizado sobre o sistema. Indo direto ao ponto, o find é um comando para procurar itens no filesystem (arquivos, links, diretórios, etc). O que o difere de outros programas que fazem isto é a quantidade de opções que a ferramenta possui e o fato de não depender da variável $PATH para encontrar um binário. O comando leva como principal parâmetro um path, ou seja, um caminho para procurar algo. Se não passarmos nada ele entenderá que o path é o diretório atual: find find /etc Se não especificarmos exatamente o que queremos buscar o find simplesmente nos mostra tudo o que achar pois ele varre o filesystem recursivamente na hora de procurar algo, mas não queremos isso tudo, até porque não seria muito útil. 🙄 Vamos tentar entender alguns filtros interessantes... Imagine que você é um administrador e precisa verificar todos os arquivos que pertencem a um usuário em específico: find / -type f -user leandro O que fizemos aqui? Utilizamos 2 tipos de filtros, um deles foi o -user, que busca arquivos que pertencem apenas à aquele usuário. O -type filtra pelo tipo de item no filesystem e suporta os seguintes tipos: d -> diretório f -> arquivo regular l -> link simbólico s -> socket Procurando por arquivos perdidos: Imagine agora que seu sistema está uma bagunça e você não faz ideia onde está um arquivo em específico, pense que você tem no mínimo 8 subdiretórios lotados de arquivos e você não lembra onde está o que você está procurando, só lembra que existe a palavra "mentebinaria" no nome dele. Além disso, você também sabe que não está nos primeiros 2 subdiretórios. Podemos resolver com: find . -mindepth 2 -name "*mentebinaria*" -type f A primeira coisa que fizemos foi utilizar a opção -mindepth, que especifica quantos níveis na hierarquia o find deve olhar no mínimo (a opção -maxdepth especifica o máximo). A outra opção foi a -name, que procura por um nome completo ou parte dele como fizemos no exemplo utilizando o wildcard * (asterisco) para bater com qualquer string antes de depois da palavra "mentebinaria". Executando comandos: Na minha opinião uma das opções mais interessantes do find é a -exec, que praticamente executa comandos em cima do que o find encontrar. Não entendeu? Vamos lá... supondo que queiramos ver qual o tipo de arquivo de todos os arquivo que encontrarmos em um diretório em específico com o comando file: find . -type f -exec file {} \; Temos muita coisa pra entender nesta linha. Primeiro, o -exec trabalha com o conceito de targets (as chaves {} ) e isto significa: coloque tudo o que o find devolver no local da chave. Para cada arquivo que o find achar ele rodará o comando file naquele arquivo. Incrível, não? Sim, mas com isto estaremos executanto o mesmo comandos múltiplas vezes, por exemplo: leandro@teste:~$ find . -type f | wc -l 295 Imagine rodar isto 295 vezes, muita coisa, não? Se notarmos no primeiro exemplo do -exec vemos que no fim da linha tem um ponto de vírgula e este indica o fim do -exec para o find (e não para o shell). Temos que usar a contra barra para escapar e o shell não pensar que é para ele. Ok, mas até agora não vimos como melhorar isto. Concordam que o comando file aceita mais de um parâmetro? file arq1 arq2 arq3 E se pudéssemos pegar tudo que o find achar e, ao invés de rodar um comando do -exec por vez passamos tudo um atrás do outro? É exatamente isto o que o + faz e para ele não precisamos escapar: find . -type f -exec file {} + Este exemplo é a mesma coisa do anterior, mas de forma mais automatizada. Vamos medir a velocidade dos dois comandos: root@teste:~# time find / -type l -exec file {} \; ... real 0m15,127s user 0m0,336s sys 0m1,640s root@teste:~# time find / -type l -exec file {} + ... real 0m1,119s user 0m0,212s sys 0m0,396s Bem mais rápido com o +, não acham? 😉 Investigando o sistema: Seu servidor foi atacado, você não sabe exatamente o que aconteceu e como aconteceu, só sabe que nem tudo está funcionando do jeito que deveria. Uma coisa interessante à se fazer é tentar olhar para o que exatamente foi alterado desde o ataque. Imagine que isto ocorreu à 2 dias: find / -mtime -2 Aqui estamos dizendo que a partir da hora que rodarmos o comando olhar para tudo que foi modificado 48 horas atrás. Podemos também verificar se algo foi acessado com -atime. E se você não sabe exatamente quando foi o ataque? A única coisa que você sabe é que a última coisa que você fez foi adicionar novas funcionalidades à um script que você tem. Podemos procurar por tudo que foi modificado após este arquivo com a opção -newer: find /etc -newer <arquivo_velho> Mas como isto? O Linux guarda um tipo de informação chamada MAC no inode de cada arquivo, resumindo é simplesmente a data da última modificação, acesso e criação do arquivo ao qual aquele inode se refere. Apenas como curiosidade, o comando stat lê essas informações também. 😋 Mais algumas informações: Ok, agora você não teve nenhum problema, só quer algumas informações sobre os arquivos que o find encontrar. A opção -size <n> pode ajudar a procurar por arquivos maiores (+) ou menores (-) que o especificado: find /var -size +20k Podemos trabalhar com os seguintes formatos: c -> bytes k -> KB 0 ou -empty -> vazio find . -empty Não está satisfeito? Ok, a opção -ls ti da muito mais informações (praticamente aplica um ls -lids em cima de tudo que o find achar) find . -user leandro -type d -ls Facilitando o parsing: Achou as opções de informações fracas? De fato a saída fica bem poluída. E se você precisasse todo dia monitorar informações específicas sobre arquivos específicos e criasse um script para isso, como você faria para obter estas informações? O find ti ajuda nisso também!!! Se você está familiarizado com a linguagem C (se não está veja isto) a função printf do C pode imprimir uma saída formatada de acordo com o que você escolher (string, inteiro, inteiro sem sinal, etc). Assim como em C, a opção -printf possui uma série de diretivas para formatarmos a saída do find como quisermos, algumas delas são: %f -> nome do arquivo %p -> path completo %i -> inode %M -> permissões %n -> número de hard links find / -type f -atime -1 -printf '%p %i %M \n' O único detalhe aqui é que por padrão o -printf não coloca um caractere de nova linha, devemos adicionar como no exemplo. Com isto a saída fica bem mais interesante para um script ler, não acham?! Aqui está o exemplo de uma saída: file1 262295 -rw-r--r-- file2 262283 -rw-r--r-- file3 262296 -rw-r--r-- Estas foram algumas dicas sobre o comando find. Com certeza informações mais completas podem ser encontradas no manual do comando, este tutorial tem como objetivo simplesmente compartilhar minhas anotações sobre o que acho bem interessante e usual sobre o comando find. Qualquer dúvida, crítica ou sugestão, por favor, sinta-se à vontade para comentar e obrigado! 😄
  7. Leandro Fróes

    Livros de programação em C

    C Completo e Total The C Programming Language
  8. Leandro Fróes

    Estude botnets pela fonte!

    Recentemente o pesquisador @maestron pediu ajuda para organizar códigos-fonte de botnets em seu novo repositório no repositório no Github. O objetivo é simples: ajudar a compartilhar e disponibilizar material para estudo para quem está iniciando na área de Análise de Malware. Segundo ele, qualquer ajuda é bem vinda, desde classificação até análise e notas sobre o código e/ou amostra. De fato, repositórios para malware não são novidade. Um bom exemplo é o projeto TheZoo, mas que tal ajudar a criar um? Com isto podemos não só ter acesso aos recursos, mas também ajudar a comunidade, aprender a classificá-los e até mesmo treinar Engenharia Reversa! 🧙‍♂️ Lembrando que o propósito deste repositório é o estudo. É recomendado também tomar algumas precauções ao analisar malware. Para isto podemos dar uma olhada no curso do CERO e no artigo Montando sua máquina virtual para engenharia reversa em Windows. 😄
  9. No dia 17, Alexey Lyashko, especialista em segurança apaixonado por engenharia reversa, publicou em seu blog sobre sua mais nova série de livros sobre Assembly. Após sumir por um bom tempo Alexey diz que foi por um motivo simples: estudar mais para poder compartilhar mais. A série será dividida em 3 livros: Bare Metal - onde o Assembly aqui não depende de plataforma. Windows - programação em Assembly para Windows 32 e 64-bits. Linux - programação em Assembly para Linux 32 e 64-bits. O primeiro capítulo do Bare Metal Assembly já foi publicado e está disponível em seu blog, inclusive para download em PDF. É interessante notar que logo no começo do livro Alexey se posiciona contrário à crença de que estudar Assembly e assuntos relacionados não vale a pena, tendo em vista a quantidade de otimizações que compiladores e outras tecnologias podem fazer. Segundo ele, é extremamente importante entender como a tecnologia funciona e seu objetivo é mostrar o quão vantajoso isso pode ser. O livro é do zero e para todos, cobrindo desde bits e bytes até particularidades de plataformas. Na hora lembrado do nosso livro online Fundamentos de Engenharia Reversa, motivado pelo mesmo ideal. 😌 Um ponto a se destacar é que, por mais que nosso livro cubra Engenharia Reversa do zero e em Português é extremamente importante ter leituras adicionais em outros idiomas, pois hoje em dia tanto para segurança quanto para tecnologia em geral, o Inglês é mais que essencial. Já até tratamos deste assunto no canal Papo Binário no vídeo Inglês técnico. Confere lá! 😉
  10. Não é de agora que IoT é um tipo de tecnologia considerada “vulnerável”. A questão é que esse fator não parece ser tão relevante, tendo em vista o número de dispositivos que são adquiridos todos os dias e certa falta de preocupação de algumas empresas ao disponibilizarem a tecnologia. Após tantos ataques relacionados à esta tecnologia o FBI criou um pequeno artigo com algumas dicas simples, mas interessantes, sobre como se preparar um pouco melhor sobre o uso destes dispositivos. A motivação para a criação do artigo é o simples fato de IoT estar em todo lugar hoje em dia e poder, por exemplo, se comunicar com outros dispositivos. Você sabia que dispositivos como roteadores, câmeras, carros, brinquedos, etc de vários modelos são considerados IoT? Com o avanço da tecnologia o mercado de segurança cresce cada vez mais e junto dele as oportunidades para estudos, pesquisa e até mesmo vagas de emprego. Que tal experimentar estudar um pouco sobre e compartilhar com a galera? 😃
  11. E pela segunda vez a pesquisadora hasherezade aperece em nossas notícias. Desta vez não com códigos incríveis (coisa que ela faz muito bem), mas com uma lista muito interessante (que ainda está em desenvolvimento) com diversas fontes para iniciar na área de Engenharia Reversa e Análise de Malware. Talvez mesmo as fontes sendo consideradas por ela para "iniciantes" ainda existam pessoas que não tem muita familiaridade com a base da computação em si ou até mesmo de Engenharia Reversa, mas não se preocupe, nosso portal possui um artigo que fala sobre uma forma incrível de começar na área de Segurança da Informação e junto a isto temos também o curso do CERO caso queira entender Engenharia Reversa do ZERO. 😎 Conhece mais alguma fonte de artigos/tutoriais/desafios de E.R? Compartilhe aqui com a galera. 😉
  12. Leandro Fróes

    Ferramenta para converter DLL para EXE

    No dia 14 de julho a pesquisadora de nick hasherezade postou em seu twitter uma ferramenta feita por ela mesma que converte DLL para EXE. Segundo ela, algumas ameaças vem em forma de DLL e a análise se torna um pouco mais complicada, com isto, hasherezade decidiu escrever esta ferramenta e descrever em seu blog as técnicas que mais utiliza em seu dia a dia analisando binários no formato PE. A ferramenta é muito útil tanto para aprender como o formato PE funciona quanto para aprimorar sua análise 😎 Que tal aplicar esta ferramenta junto dos exercicíos do curso do CERO? 😉
  13. Leandro Fróes

    InlineFinder

    Versão 1.0.0

    12 downloads

    O Inline Empty Byte Finder é uma ferramenta que procura por bytes nulos dentro de um binário PE. Podemos escolher tanto as permissões que queremos quanto o tamanho na hora de procurar. Mais informações aqui.
  14. Leandro Fróes

    PE_ADV

    Versão 1.0.2

    35 downloads

    O PE Appended Data Viewer é uma ferramente que permite visualizar e salvar a região de overlay de um binário PE. Existem diversas funcionalidades além de dumpar os bytes, tais como cálculo de entropia, suporte à ambientes 32 e 64 bits, XOR decrypt e por ai vai.
  15. Leandro Fróes

    Procure por bytes nulos de forma automática

    Alguma vez você precisou fazer uma alteração em um arquivo PE? Seja para brincar e/ou estudar sobre alguma técnica de hooking ou algo assim? Provavelmente você precisou procurar por bytes nulos dentro do arquivo e adivinha só, criaram uma ferramenta pra fazer isto para você sem muito esforço. O Inline Empty Byte Finder é uma ferramenta que analisa arquivos executáveis no formato PE e procura por sequências de zeros dentro do arquivo de acordo com as flags de seção que você especificar (execução, escrita, leitura) e no tamanho que quiser: A ferramenta está disponível para download e infelizmente não tem código aberto, mas isso não impede você de criar uma igual ou melhor e ainda por cima disponibilizar para todos!!! 👾
×