Jump to content
Otavioarj

Palestra 2: Abusando de fuzzing no Windows

 Read less than a minute

Recommended Posts

 Read less than a minute

Links por agora:

> https://github.com/hfiref0x/WinObjEx64

> https://github.com/otavioarj/SIOCTLBF

> Doc IOCLT: http://msdn.microsoft.com/en-us/library/ms810023.aspx

Share this post


Link to post
Share on other sites
 Read less than a minute

Bom dia Otavio. Primeiramente, parabéns pela apresentação, foi show de bola. Eu estou estudando o Windows Internal com o livro e o curso do Pavel Yosifovich. O que tu podes indicar para começar a entender melhor e poder buscar falhas? Agradeço desde já.

Share this post


Link to post
Share on other sites
 Read less than a minute

Wagner, esse cara é referência no assunto ahaha. Eu sugeriria vc botar a mão na massa, começando por nível de usuário, há muita coisa "escondida".

Na minha opinião, pegar um injetor de dll/código é um bom ponto de começo, fuçar na WinAPI, resolução de símbolos, comportamento do loader e tal. Tem o Kiljector no meu github, e o BlackBone que possui alguns métodos mais tradicionais, e possuí injetor em nível de kernel :P.

https://github.com/DarthTon/Blackbone

 

 

Share this post


Link to post
Share on other sites
 Read less than a minute

Boa noite Otávio. Tudo certo? Cara, primeiramente, muito obrigado pelo retorno. Então, eu vi que ele entende da parte interna do Windows pra caramba, por isso que eu estou focando nas aulas dele. Ter uma base forte do Windows. O cara é top mesmo!

Quanto a sua dica, obrigado! Vou começar por aí mesmo! Começar pelo ntdll.dll de cara é uma boa? Tipo debugando ele com o Windbg ou desassemblando ele?

Quanto tu diz injetor de código de dll, desculpa a pergunta, mas com qual finalidade? Tipo já injetar dll mesmo e estudar o que acontece?

Obrigado Otávio. 

Share this post


Link to post
Share on other sites
 Read less than a minute
23 hours ago, Wagner Drachinski said:

Quanto a sua dica, obrigado! Vou começar por aí mesmo! Começar pelo ntdll.dll de cara é uma boa? Tipo debugando ele com o Windbg ou desassemblando ele?

Olha, 1/3 da API em nível de usuário se encontra aí. Seria legal vc ver partes disso, por exemplo, como funciona o OpenProcess, pro NtOpenProcess e aí ver como rola tudo :). Debuggar a dll daria um trampo absurdo, e seria bem confuso.

A parte que falo sobre injeção de código é justamente para estudar todo o processo. O serviço, ou a função, mais importante em um S.O é fornecer a abstração aos recursos controlados e escassos, como acesso ao hardware :P. E essa abstração rola principalmente pelo conceito de processos e threads, então estudar os processos e suas linhas de execução, principalmente como um processo interage com o outro, é bem dahora para tanto estudar a API do S.O, seus internals eee ainda segurança. Tdo ao mesmo tempo ahaha 😛

Share this post


Link to post
Share on other sites
 Read 1 minute

Opa, boa noite Otávio. Tudo certo? Desculpa a demora para responder aí! Beleza, vou dar uma olhada no OpenProcess e como ele se comunica com o NtOpenProcess. Essa passo a passo pode ser feito pelo WinDbg?

Quanto a essa parte de recursos controlados e escassos, está ligado a que tudo precisa ser solicitado ao modo kernel, a aí sim, ele que faz a parada de verdade. Na verdade, pelo o que eu já percebi, não é nem o kernel na verdade, pois o kernel passa para o driver e o driver passa para o HAL e daí o HAL é que faz o que precisa ser feito e depois avisa o kernel que está pronto. É mais ou menos isso?

Então, quanto aos processos e threads, eu estava vendo (estava pq o curso acabou o prazo grátis e agora eu tenho que esperar para comprar.....rsrsrs) é que o processo é um objeto do kernel que dá recursos para as threads poderem executar. Aí o processo em kernel modo é dividido em EPROCESS (executivo) e KPROCESS (kernel) e se não me engano o EPROCESS contém o KPROCESS. O mesmo processo acontece com o ETHREAD e KTHREAD. Só que cada um contém informações diferentes. Aí depois que toda essa parada rola, o subsistema de ambiente Windows (csrss.exe) é avisado de que o processo e thread do lado kernel está pronto, aí ele pode criar as suas informações no lado cliente. Acho que é mais ou menos isso também?

Cara, se eu estiver falando besteira, dá um grito aí que daí eu já apago tudo aí!! kkkkk

Aí quanto ao processo conversar com outro é por IPC. Aí uma parada que eu não entendi, pipe nomeado, fila de mensagem e memória compartilhadas são formas de IPC? (foi mal se a pergunta é muito básica)

Então, se eu estiver no caminho do entendimento das coisas aí, eu ainda não consegui olhar com o olhos de um atacante ainda, pois eu estou pegando os conceitos ainda e vendo como o Windows funciona certinnho, tipo, como inicia um processo, ou como termina o processo. Mas ainda não estou conseguindo ter um olhar de atacante.

Na verdade, só tipo tendo umas ideias, tipo, aqui provavelmente pode ser que dá pra fazer algo, aqui também. Tipo, eu estava vendo sobre o Windows Graphics (win32k.sys) e que ele é acessado direito pelo modo usuário, sem passar pelo executivo. Aí deve da pra fazer alguma coisa. Fui dar uma pesquisada e tem uma falha recente no GDI aí. Também estou estudando o protocolo SMB para entender como ele funciona.

Então, tudo isso é da hora mesmo cara, tipo, tu ver as coisas acontecendo e você ver que está entendo tudo.

Cara, se eu estiver no caminho dá um toque aí.

Outra coisa, tu me permite ir estudando e te perguntando quando surgir dúvidas?

Obrigado novamente Otávio!

Share this post


Link to post
Share on other sites
 Read less than a minute

Boa tarde

Percebi algumas falhas aí na minha colocação acima!

Mas entendi o que você passou como início.

Muito obrigado pelas dicas!

Vlw Otávio!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...