-
Content Count
46 -
Joined
-
Last visited
-
Fabiano Furtado is attending MBConf@Home v3
-
rogerio milagres started following Fabiano Furtado
-
Primeiramente, parabéns pelo artigo! Aguardo a parte 2! ? Olha... através de caminhos diferentes, cheguei nesse mesmo problema dos "0s" abusivos no meio do binário. No meu caso, estava tentando fazer o menor "hello world" possível em NASM 64bits com a .text sem null chars, mas os "0s" sempre apareciam. Se quiser tornar o seu binário menor, sem esses "0s", utilize a opção "-z noseparate-code" no ld. Isso fará com que ele não coloque esses "0s" entre as sessões do ELF. Dizem que esses "0s" servem para aumentar a segurança... eu queria entender o porque! Sinceramente, uma sessão .text o
-
Primeiramente parabéns pela MBConf! Estes eventos estão sendo sensacionais! Gostaria de assistir palestras sobre técnicas para ofuscação de binários e também alguns tipos de ataques como ret2libc, ROP e suas mitigações. Outra palestra interessante seria sobre algum pesquisador com alguma experiência prática em descobertas de BUGs/vulnerabilidades em sistemas... (de preferência sem ser sistema Web) pudesse contar pra gente como descobriu e explorou essa vuln. Outros assuntos interessantes: como fazer o bypass de sistemas do tipo IDS/IPS? Como detectar Shellcodes polimórficos/meta
-
Fabiano Furtado is attending MBConf@Home v2
-
Palestra 1: Explorando uma botnet P2P transiente
Fabiano Furtado replied to rmarinho's topic in MBConf v1
Renato... primeiramente, obrigado pelo retorno. Cara... achei muito legal esse estudo! Vou tentar fazer esse patch no openssh para monitorar os comandos enviados. Muito interessante e útil esse patch!!!!! Vou ler o seu paper. Parabéns pela pesquisa! Obrigado mais uma vez. -
Palestra 1: Explorando uma botnet P2P transiente
Fabiano Furtado replied to rmarinho's topic in MBConf v1
Pessoal... boa tarde. Seguem as minhas perguntas sobre a palestra. Agradeço desde já. * Esse tipo de BOT P2P não deveria estar predominando neste mundo dos ataques? Pq não está? * Quais ferramentas foram usadas para fazer essa pesquisa? Achei interessante como foi obtido o tráfego SSH e consequentemente o certificado utilizado na BOT. * Tem algum paper sobre essa pesquisa? -
Pessoal.. li um artigo hoje e achei muito interessante a técnica de ofuscação apresentada. https://www.d00rt.eus/2020/04/ebfuscation-abusing-system-errors-for.html No meio do artigo, o autor cita outras técnicas de ofuscação de código: "Here are other transformations that can be applied: - Virtualization - Control Flow Flattening - Encode literals - Opaque predicates - Encode Arithmetic ..." Fiquei intrigado em como usar Virtualização para se fazer ofuscação em código. Pesquisei um pouco sobre o assunto e achei uma palestra do Alexandre Borges na DEFCON China 201
-
Fred... tudo bem? Achei interessante a idéia do IPv6! Quem sabe depois da implementação do payload? Bem, estou começando a estudar o código para implementar o payload nos protocolos e acredito que tenha encontrado um bug no ICMP... Comecei pelo ICMP por se tratar do menor código existente no T50, ou seja, mais fácil de se entender e modificar. Executei um # t50 --protocol ICMP --threshold 2 127.0.0.1 e capturei os pacotes no Wireshark. No Wireshark, o campo do checksum estava errado, e o mesmo mostrava os bytes invertidos. Mensagem do WS: "Checksum: 0xbbaa incorre
-
Fabiano Furtado started following T50 versão 5.8.4
-
Frederico e Fernando... será que eu poderia me aventurar a implementar esse suporte a payload de usuário no T50? Para mim seria um bom desafio em C... acho que aprenderia muito nessa implementação. Claro, preciso do apoio de vocês durante o desenvolvimento pois certamente terei dúvidas. Sou aberto a críticas e sugestões. O que vcs acham? Valeu!
-
Fabiano Furtado is attending MBConf@Home
-
Cara... vc é o mestre!!!! Achei muito legal esse make! Depois vou testar... Em tempo, já que vc usou o objcopy para diminuir o tamanho do binário (aliás, achei bem legal isso), reparei que os meus binários estavam ficando MUITO grandes (mesmo os mais simples) e descobri o motivo. A partir da versão 2.30 (ou 2.31.. não sei ao certo) do LD, há um novo parâmetro para fazer a link edição chamado "-z noseparate-code". O default passa a ser "-z separate-code" e isso faz com que o linker preencha o binário com vários Null Bytes entre as seções. Eu li sobre esse parâmetro e o motivo da
-
Opa... Segue a linha... $ ld --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o hello /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../.. -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/g
-
Oi Frederico... agora sim! Usando alguns parâmetros que a opção -v me mostrou, eu consegui fazer o hello world funcionar e entender o problema. Muito obrigado!
-
Bom... o GCC não está instalado errado. Isso eu posso te garantir. Eu uso o Arch Linux e nele há links simbólicos apontando para /lib64/ld-2.29.so e /usr/lib64/ld-2.29.so, que são arquivos idênticos. Eu mantive os arquivos temporários para poder utilizar o hello.o no ld e usar o ld para fazer a link edição, e não o GCC. Utilizando-se o GCC, o erro não ocorre, mas usando o ld, sim.
-
Pessoal... fiz um "Hello World!" em C para testes e estou tendo um "Segmentation fault". Vou reproduzir os passos que fiz. Primeiramente, compilei com "gcc -Wall -O3 -save-temps hello.c -o hello". Até aí, tudo certo. Execução sem erros. Como queria fazer a link edição "na mão", dei um "ldd hello" e... linux-vdso.so.1 (0x00007fffb3558000) libc.so.6 => /usr/lib/libc.so.6 (0x00007fc34bbc7000) /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fc34bde6000) Após isso, link editei o arquivo com o comando "ld -dynamic-link
-
Pessoal... Para cada sistema que fazemos, normalmente, precisamos ler algum arquivo de configuração ou carregar dinamicamente algum plugin no momento da execução. Alguém tem alguma idéia/dica sobre como fazer isso de maneira mais fácil? Alguém já desenvolveu algo assim? Há algum artigo que descreva isso? Cada um implementa isso de uma maneira e não queria ficar perdendo tempo em algo tão básico. Sei que a libconfig pode ajudar, mas não queria utilizar nenhuma lib. Obrigado.
-
Pessoal... Ontem achei um artigo na Internet bem escrito, interessante e detalhado sobre Engenharia Reversa em ELF. É um reversing básico, mas não tããããão básico assim. Acho que vale a pena conferir. http://manoharvanga.com/hackme/ Valeu!
-
Texto excelente! Para complementá-lo, segue um video do Ben Eater, onde ele fala sobre o trabalho de Turing e Church, e questiona se o computador de 8 bits que ele contruiu com portas lógicas simples é realmente considerado um computador completo. Bem, sugiro assistirem a esta Playlist fantástica! São mais de 40 videos. Comecei assistindo um e não consegui parar! ? Valeu!