Ir para conteúdo

Todas Atividades

Atualizada automaticamente     

  1. Hoje
  2. passef

    Mind The Sec Rio de Janeiro

    Obrigado @Fernando Mercês pela resposta. Abraços
  3. Ontem
  4. Fernando Mercês

    Mind The Sec Rio de Janeiro

    Oi @passef, boa noite. Não, com o Mind The Sec não temos parceria. Abraço, Fernando
  5. passef

    Mind The Sec Rio de Janeiro

    Boa noite, Gostaria de saber se a Mente Binária irá disponibilizar ingressos, ou alguma promoção, para o evento Mind The Sec que irá acontecer no dia 10/05/18 no Rio de Janeiro? Abraços
  6. Última semana
  7. Fernando Mercês

    Termos que vocês gostariam de ver na Wikipédia

    Que legal, @Felipe.Silva. Ficou maneiro!
  8. Felipe.Silva

    Termos que vocês gostariam de ver na Wikipédia

    Eu criei um artigo falando sobre a ferramenta HT Editor. Não é um termo sobre o assunto, mas eu acho que seria interessante criar artigos sobre ferramentas utilizadas nessa área.
  9. Pedro

    duvida

    Valeu galera! @Leandro Fróes, irei persistir, se eu conseguir eu posto! @Felipe.Silva, obrigado por partilhar o script. Irei estudar assembly o/ @gzn, obrigado pelas etapas :D.
  10. gzn

    duvida

    Se você pretende alterar um binário no formato PE você pode pesquisar pelos termos "infect PE", "binary code injection PE". Acho que cada formato de arquivo executável tem lá suas particularidades. Por exemplo, você pode pensar no seguinte (se meu raciocínio estiver errado alguém me corrija! rs): Crie um programa normal em C com os comandos que você quer utilizar. Compile ele e retire o código da seção .text dele. Analise as bibliotecas que ele precisa. Crie uma nova seção executável no binário que você quer colocar esse código e "cole" lá. Atualize as bibliotecas que o binário precisa com base no seu código e veja se está faltando alguma biblioteca. Mude o ponto de entrada do binário para seu código e do seu código desvie para o ponto de entrada original do binário que você quer modificar. Essas 6 etapas podem ser divididas em subetapas e o negócio não é simples porque você vai precisar saber como funciona o carregamento de um binário variando o formato (ELF, PE-COFF, PE). KKKK no mais, não tenho condições de prosseguir e te ajudar porque também... não sei sei! Siga o método cartesiano e divida esse problema em problemas simples! Quem sabe outros experientes que trabalham na área e lidam com infecções possa ajudá-lo a entender isso... E... ouvintes de Sócrates ficavam surpresos ao pensar nas perguntas que ele fazia a fim de demonstrar que eles não sabiam o que diziam saber, mas quando supunham que Sócrates sabia das respostas ele mesmo dizia: "Eu também não sei, por isso estou perguntando"! Daí surgiu a expressão que resume esse pensamento dele, só sei que nada sei! Eu também digo o mesmo!
  11. Felipe.Silva

    duvida

    Há um tempo eu fiz um script em Python que inseria um shellcode em um executável PE. Não está bem feito, mas já deve lhe servir de base para entender. (quem sabe um dia desses eu reescrevo e.e) Eu basicamente insiro o shellcode no final do código, mudo o entry point para apontar para o shellcode e no final do shellcode eu coloco um jmp para o entry point original. Link para você dar uma olhada no fonte: https://github.com/Silva97/peinject.py Se você quer fazer isso e não sabe Assembly então está colocando a carroça na frente dos bois. Antes de tentar modificar um executável você tem que entender como ele funciona. Dica de estudo: - Aprenda Assembly. - Pesquise e estude sobre o formato de executável PE. Obs.: Gravity Falls \o/
  12. luis.araujo

    Como ser um bom profissional em segurança da informação?

    Cara, eu que tenho 12 anos na área, vi que tenho muito que aprender ainda depois de ler esse artigo. A maioria das coisas citadas aqui eu já domino, mas outra que eu nem sabia que era necessária. Muito bom seu artigo. vou usar ele como meu guia para melhorar meu conhecimento e propagar este para outros. Well done!!!
  13. Leandro Fróes

    duvida

    Bom dia mano! Antes de qualquer coisa, por que você não testa e caso dê algum erro (ou até mesmo se der certo) você coloca aqui pra galera? abs
  14. Pedro

    duvida

    e ae galera, sou novo nessa area de engenharia reversa. me respondam uma coisa, é possível adicionar uma lib e um comando em um arquivo .exe? por exemplo, um arquivo .exe feito em C, e nele eu desejo adicionar o seguinte: #include <stdlib.h> // e dentro de um void, por exemplo, adicionar: system("ls"); obrigado, aguardo resposta ^~
  15. Felipe.Silva

    Como reportar falhas

    Isso já aconteceu comigo. Mandei um e-mail e eles corrigiram a falha... Mas não mandaram nem um "obrigado" como resposta. (sério, não deram resposta nenhuma) No caso eu "tropecei" na falha. Se você fez pentest sem autorização no sistema deles tenha cuidado. Mesmo que você tenha o objetivo de ajudar eles não querem saber. Os fins não justificam os meios neste caso. e.e Eu acharia arriscado contatar eles, podem te processar e você pode até ir para a cadeia. (sim, isso é crime) A menos que tenham ativo algum serviço de Bug Bounty. A propósito, se quer ganhar dinheiro testando sistemas dos outros ir atrás de um Bug Bounty é uma boa pedida. Dá uma olhada no site HackerOne.
  16. A SingularityNET (https://singularitynet.io/) está desenvolvendo uma plataforma para criação, compartilhamento e monetização de algoritmos e modelos de Inteligência Artificial, utilizando tecnologia de blockchain e seu próprio token. Veja mais aqui: Estamos recrutando profissionais para o nosso time de desenvolvimento em Inteligência Artificial. Você fará parte de um time multicultural e multidisciplinar, colaborando em projetos de código aberto no desenvolvimento de novas tecnologias e na integração de soluções de IA na nossa plataforma. Mandar curriculo para: andre (em) singularitynet.io Perfil procurado (essencial): Domínio de C++ e Python em ambiente Linux Experiência sólida em desenvolvimento Web e protocolos com criptografia Experiência sólida em sistemas distribuídos Experiência sólida em programação multi-thread Experiência sólida em integração com bancos de dados Facilidade para se comunicar em Inglês (oralmente e por escrito). A equipe do projeto é distribuída por diversos países e discussões e reuniões de update são parte do cotidiano da empresa. Perfil procurado (desejado): Conhecimento de algoritmos e aplicações de Inteligência Artificial / Machine Learning Conhecimento de blockchain e criptomoedas Experiência com graph databases Experiência com Docker Experiência em projetos de pesquisa científica Experiência em projetos open source Experiência em análise de dados Inglês fluente
  17. johnk3r

    Como reportar falhas

    Olha, na minha experiência isso varia muito de empresa para empresa. Infelizmente no Brasil, se não estou enganado, a empresa não é obriga a notificar que sofreu algum tipo de invasão. Então campanhas de recompensa são quase que raras. Quando encontro falha de segurança, sempre notifico a empresa (TI) do ocorrido e informo brevemente sobre a falha, algumas retornam, outras não. Se a empresa retorna, tento fornecer serviço de consultoria, caso não, armazeno todos os samples da vulnerabilidade e fim.
  18. Fernando Mercês

    Segurança em IoT

  19. Fernando Mercês

    Voa!

  20. Fernando Mercês

    O dia sem wifi

  21. Fernando Mercês

    SQL no bar

  22. gzn

    Como encontrar a função main?

    Muito bacana seu script @Felipe.Silva! Creio que não só eu mas os outros que estão iniciando acharam motivador você escrever esse script e ainda na linguagem python (o que é até bom pra quem ta fazendo o curso Pythonicos!). kkk é isso aí amigo, quando você souber de um e fizer uns testes não deixa de comenta ai no fórum. Seus posts são muito bem organizados e você tem uma didática legal (a maneira como você explica passo a passo). valeu!
  23. Felipe.Silva

    Como encontrar a função main?

    @gzn. Feito. Agora o script identifica quando usar a instrução LEA. Testei com o ls e funcionou. Só que com isso nós conseguimos o endereço raw... Endereço na memória não vai rolar. Mas com o endereço raw já nos dar a possibilidade de meter um breakpoint... E quando abrir no debugger nós restauramos a instrução que foi alterada. Em relação a packers eu estou na mesma que você. Não conheço nenhum Se alguém puder ao menos indicar um packer para que a gente possa fazer uns testes... Eu nem sei como um packer funciona. kkkkk Link de novo para o script: https://github.com/Silva97/tools/blob/master/mainsearch.py
  24. Felipe.Silva

    Como encontrar a função main?

    Como eu disse: « Se eu fosse fazer uma ferramenta eu pegaria o entry point e a partir dele buscaria pelo call. Ao achar o call, os 4 bytes anteriores é o endereço da main » Falei do +0x20 somente se assumirmos que _start nunca muda. Se é o caso de mudar, então podemos procurar pelo call. (só procurar por FF 15) De acordo com os manuais da Intel o valor imediato sempre ficará em ultimo(como podemos ver aqui). Então não importa que instrução seja usada, desde que ela esteja logo antes do call vai funcionar. (e se o call não mudar também) Eu fiz um script em Python aqui. Testei no programa que você passou e em um Olá mundo. Nos dois funcionou tranquilo. Link: https://github.com/Silva97/tools/blob/master/mainsearch.py Faz uns testes ai para ver o que dá. EDIT: Eu fiz um teste aqui com o ls e agora que entendi o que você quis dizer com usar o LEA. Ele usa um endereço relativo de acordo com o valor de RIP... Muda muita coisa. '-' Vou tentar adaptar o algoritmo para identificar isso.
  25. gzn

    Radare2 dicas de uso

    Como encontrar a main de alguns arquivos executáveis? No caso da instrução usada para especificar o primeiro argumento da __libc_start_main seja MOV: Usando a fonte ola_mundo.c e as opções de compilação nesse Makefile: r2@d0d325823847:~$ r2 -qc 's entry0+0x20;pxw 4~[1]' ola_mundo 0x00400430 Claro que se for fazer a análise dinamicamente fica mais fácil! Se estamos falando de um ELF de 64 bits vamos olhar para RDI onde está o endereço da main. Como olhar seu valor antes da call __libc_start_main? Primeiro inicie o radare com -d (análise dinâmica requer modo de depuração) Geralmente o radare já deixa você no ponto de entrada do binário se ele for um executável mesmo, mas se por algum motivo estranho ele não estiver lá, digite s entry0 Faça uma análise básica para descobrir as funções (use af) Agora coloque um ponto de parada na primeira call (que provavelmente será para __libc_start_main) com comando db ` pdf~call:0[1]` Continue a execução com comando dc Agora inspecione o registrador RDI com dr~rdi Lembre-se que você pode fazer todos estes passos pela linha de comando de forma automática! (deixo para exercício) Achou engraçado isso tudo só para pegar aquele enderecinho?! rsrs Bom isso tudo é só pra você ir treinando um pouco e saber o que cada comando acima faz! Boa diversão e continue praticando!
  26. gzn

    Radare2 dicas de uso

    Como ter a última versão do radare e ter um ambiente minimamente isolado para analisar binários? Que tal usar o docker com uma imagem com o radare atualizado? sudo apt install -y docker-compose sudo docker pull radare/radare2 mkdir sandbox cd sandbox Agora um script para simplificar a sua vida (vou chamá-lo de r2docker): #!/bin/sh imagem='radare/radare2' container='radare' if sudo docker container ls -a|egrep Exited.+$container then echo reiniciando sudo docker start $container elif ! sudo docker container ls -a|egrep Up.+$container then echo iniciando sudo docker run --name $container --cap-drop=ALL --cap-add=SYS_PTRACE -v $PWD:/home/r2/ -id $imagem fi sudo docker exec -it $container bash Torne-o executável: chmod +x r2docker Agora é só entrar nesse ambiente e fazer os seus experimentos: wget https://shellter-static.s3.amazonaws.com/media/files/7dd461ae-89bf-49c0-a7a3-4148bd788599.bomb -O bomb ./r2docker r2@d0d325823847:~$ ls bomb r2@d0d325823847:~$ r2 -dAA bomb Para atualizar a imagem do radare é bem simples, basta você parar o container e fazer o pull: sudo docker container stop radare sudo docker pull radare/radare2 Então, o que você acha disso? Eu particularmente mesmo que os binários que eu vá analisar não sejam perigosos eu não gosto de bagunçar meu ambiente principal de trabalho (tudo que faço nele procuro instalar via gerenciador de pacotes para se quiser mais tarde desinstalar o que instalei com facilidade!). Como meu PC é muito lento pra rodar uma VM essa é uma boa alternativa.
  27. gzn

    Como encontrar a função main?

    Meus amigos, gostaria que alguém desse um exemplo para situação nº 3. Alguém pode escolher um protetor (protector) de binário popular para linux ou windows e dizer mais ou menos as etapas para se chegar a main? Não vale usar o UPX porque ele só comprime os dados! thank you
  28. gzn

    Como encontrar a função main?

    @Felipe.Silva realmente você está certo! Até para resolver no caso de um binário estático (pelo menos se for fazer o binário da forma tradicional com libc). Parece mesmo que esse deslocamento da entrada+0x20 não varia muito não (pelo menos, até agora nos meus testes não vi nada diferente). Obs.: essa técnica parece funcionar melhor só em casos em que é usada a instrução mov (ex.: mov rdi, 0xFFF...). Algumas vezes nesse ponto (próximo a entrada+0x20) é usado LEA ao invés de MOV, nesse caso essa técnica precisa ser adaptada.
  1. Mais Resultados
×