Jump to content

Fernando Mercês

Administradores
  • Content Count

    615
  • Joined

  • Last visited

  • Country

    Brazil

Community Reputation

0 Neutral

Personal Information

Recent Profile Visitors

7,480 profile views
  1. Você tem algum serviço escutando na porta 80 no seu host? Porque você tá enviando o pacote, mas se não tiver ninguém pra responder, não vai ter resposta mesmo. 😉 Você não falou em que SO está, mas se for Linux/macOS, experimenta escutar com o netcat, numa porta alta pra não precisar de root, por exemplo: $ nc -vlp 3000 E depois tenta enviar seu TCP SYN pra ela usando o Scapy (dport=3000 no teu código). Enfim, basicamente você precisa falar com uma porta que esteja aberta (haja algum serviço escutando nela). Abraço!
  2. De nada 🙂 O código-fonte (à esquerda) é em C e pode ser compilado pra 16, 32 ou 64 sem problemas. Já o exemplo do código compilado à direita tá em Assembly e o fato de ter esse ".model small" acredito que só faça sentido em programas de 16-bits sim, mas aqui tem uma explicação mais completa: https://stackoverflow.com/questions/47252660/what-is-meaning-of-model-small-in-8086-programs Abraço!
  3. Isso é código de 16-bits. Nunca usei o MASM para tal, mas esse cara dá algumas dicas pra fazer funcionar: https://blog.fpmurphy.com/2017/11/16-bit-intel-assembly-on-windows-10.html - perceba que ele só rodou o binário no DOSBox (um emulador de DOS), mas compilou no MASM 6.14 e 7.10 (com a opção /omf). Enfim, dá um trabalhinho mas vai. 😉 Abraço!
  4. O que você tá buscando é por exibir strings UTF-8. Eu achava que o x64dbg suportava (não tenho como testar agora). Uma opção pode ser o plugin https://github.com/horsicq/stringsx64dbg 😉
  5. Opa, que legal que tá pondo isso em prática! O @Thiago de Queiroz certamente pode explicar melhor, mas acredito que a forma como esteja fazendo não seja muito efetiva porque estás usando trace over (ou seja, não entra nas funções) e a função que é chamada quando qualquer evento na janela do programa ocorre (tipo o clique de um botão) não está na WinMain (que é essa que você postou o disassembly). Esse código de 4010F1 até 40111B é um loop clássico de uma janela usando a Win32 API. Antes de ele ser executado, é definida uma estrutura do tipo WNDCLASSA, que vai ser registrada com a RegisterClassA(). No teu código, a inicialização dessa estrutura começa em 40101D. Conforme a documentação, o segundo elemento dela é o seguinte: lpfnWndProc Type: WNDPROC A pointer to the window procedure. You must use the CallWindowProc function to call the window procedure. For more information, see WindowProc. "Window procedure" que dizer: a função que vai tratar os eventos da janela. No caso do teu programa, o valor deste elemento é colocado com esse MOV em 401027. Como o x64dbg já o reconhece como WndProc, você pode ddar um Ctrl+G e digitar "WndProc" pra cair nela. Recomendo fazer um trace over no mínimo a partir dela, mas ainda podem haver mais calls que vão fazer o trace parar. É que a abordagem de "traçar tudo" que você tá tentando fazer é muito custosa. Tracing é incrível mas na minha opinião é pra ser usado a partir de algum ponto. Não sei o que os demais pensam sobre, nem uso muito tracing também. Mas enfim, belo tópico! 😉 EDIT: Outra coisa que lembrei é que você pode usar Message Breakpoints como neste tutorial. Ao parar na USER32.DLL, ao invés de fazer o esquema de breakpoint on execution na .text, pode simplesmente ver a call stack (Ctrl+K) e ir no último endereço do módulo principal. Vai parar direto no código do clique do botão OK da janela "Register". Aí é só tracear de lá. 😉 Abraços!
  6. Sim, é uma fraqueza em minha opinião também. Eu recomendo usar apps que tenham suporte à senha/digital/reconhecimento facial etc ao serem abertos. No iOS, conheço o Outlook (free) e recentemente conheci o Canary (pago). Pra Android não sei. Dá uma olhada nesse artigo também ó: Abraço!
  7. Fernando Mercês

    MBConf@Home v3

    until
    Nós de novo com nossa conferência, totalmente online e gratuita! Todas as informações sobre a MBConf estão disponíveis em http://menteb.in/conf . Se você já viu tudo lá e quer se registrar, basta confirmar sua presença aqui. Pouco antes do horário de início da conferência você receberá um link para ingressar nela. Agenda 10h00 - Abertura - Fernando Mercês 10h15 - Fio Cavallari - Decodificando malwares web: uma história de dor e sofrimento 11h05 - Thiago Marques 11h55 - Jan Seidl 12h45 - Bruno Oliveira 13h35 - Encerramento Lembre-se de compartilhar a conferência nas suas redes sociais. 😎
  8. Oi Gabriel! Que eu lembre o instalador do IDA já instala tudo que precisa. Se for original você pode postar no fórum deles, mas se for piratex aí fica difícil, pois o instalador pode estar zuado, pode até conter vírus, enfim, não sabemos. 😞 Abraço.
  9. Mais uma: 1.Qual seria o risco no mundo real pra isso (já que você citou que está aberto e encontra com o shodan)? 🙂
  10. E aí, galera, fazemos uma v3? Se sim, respondam aí! Fazemos uma por mês? Uma por ano? Vocês escolhem aê, depois discutiremos e vamos ver o que sai. 🙂 Obrigado por participarem disso! 💚
  11. Pergunta que surgiu e não tempo ó: 2.é possível utilizar a GPU para processar mais rapidamente esses comandos?!?
  12. Perguntas que surgiram no chat: 1.Em um CTF, é possível que as máquinas virtuais vulneráveis passado para o participante de alguma forma ao atacar a máquina, há possibilidade de serem atacados? 2.como faço para treinar nesses ctf? 3.tem algum site para iniciantes?
  13. Hoje eu tava lendo um blogpost da Sophos, LockBit ransomware borrows tricks to keep up with REvil and Maze, quando esse trecho me chamou a atenção: Pelo que entendi os autores basicamente implementaram o que a IsDebuggerPresent() já faz. Dá pra ver o código dela por qualquer disassembler. No caso usei a linha de comando do x64dbg (pode carregar qualquer binário, mesmo que ele não importe a IsDebuggerPresent): d IsDebuggerPresent Vai cair em algo como: 7524A480 | FF25 680E2B75 | jmp dword ptr ds:[<&IsDebuggerPresent>] | Aí é só dar [ENTER] que o x64dbg segue o salto e mostra o dissasembly da IsDebuggerPresent: 769A4940 | 64:A1 30000000 | mov eax,dword ptr fs:[30] | 769A4946 | 0FB640 02 | movzx eax,byte ptr ds:[eax+2] | 769A494A | C3 | ret | Já que é na KERNELBASE.DLL que a implementação da função realmente está, poderia ter digitado direto no x64dbg também: d kernelbase.IsDebuggerPresent Tem mais detalhes sobre essa BeingDebugged flag na aula 24 do CERO. 😉 Fiz tópico só pra dar um exemplo de que mesmo coisas básicas vistas no CERO estão por aí nos blogs das principais empresas de segurança do planeta, ou seja, o conhecimento que trabalhamos aqui é útil profissionalmente. Podem ter certeza. Por mais iniciante que seja, a gente busca entregar coisas sólidas, que certamente são usadas no mercado. Abraço!
  14. https://github.com/Turing-Tecnologia/Processo-Seletivo-Trainee/
  15. Posta o que você já fez e onde exatamente estão suas dúvidas, Bruno. Do contrário acho que não muito como a galera ajudar... 😉 Abraço!
×
×
  • Create New...