Vulnerabilidades WEB Part. I - (Descobrindo o Servidor, Vulnerabilidades no Servidor)
Autor: Paulo Cesar | Publicado: 2014-03-29T09:59:00-07:00


OBS: Todos os dados e exemplos descritos neste arquivo possuem somente
&nbsp;&nbsp;&nbsp;&nbsp; propositos educacionais, o autor nao se responsabiliza pelo mau uso
&nbsp;&nbsp;&nbsp;&nbsp; dos mesmos.


  ***********************************

  * &nbsp; &nbsp;HACKING DE WEB &nbsp;PART I &nbsp;*

  ***********************************



-------------------------------- INDICE -----------------------------------



1 - INTRODUCAO

2 - POSSÍVEIS TECNICAS&nbsp;

&nbsp; &nbsp;2.1. - Descobrindo o Servidor

&nbsp; &nbsp;2.2. - Vulnerabilidades no Servidor

&nbsp; &nbsp;2.3. - Furos em CGIs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;---------------------------&gt; Próximas publicações

&nbsp; &nbsp;2.4. - Furos em HTML &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ---------------------------&gt; Próximas publicações

&nbsp; &nbsp;2.5. - Brutal Force &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;---------------------------&gt; Próximas publicações

3 - BACKDOORS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;---------------------------&gt; Próximas publicações

&nbsp; &nbsp;3.1. - HTTP Tunel &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;--------------------------&gt; Próximas publicações

&nbsp; &nbsp;3.2. - Backdoor em CGI. &nbsp; &nbsp; &nbsp; &nbsp;---------------------------&gt; Próximas publicações

4 - TERMINANDO &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;---------------------------&gt; Próximas publicações

&nbsp; &nbsp;4.1 - Links e Referencias &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;---------------------------&gt; Próximas publicações

&nbsp; &nbsp;4.2 - Consideracoes Finais &nbsp; &nbsp; &nbsp;---------------------------&gt; Próximas publicações



---------------------------------------------------------------------------


---------------------
1 - INTRODUCAO |
---------------------

Existem centenas de Script Kiddies mudando paginas Internet a fora através
de má implementações de Servidores WEB.No entanto, o Servidor WEB mais
atacado é o que menos encontra-se em redes dita 'seguras'.
Neste artigo eu pretendo abordar alguns esquemas bem mais úteis que apenas alterar uma
página do servidor, e tambem pretendo descrever formas básicas de se
atacar um Servidor WEB mais seguro, num Sistema Operacional menos Inseguro
(Varios Unix).
Este é mais um artigo que possui como alvo a divulgação de Conceitos e Teorias ao pessoal
NewBie Fuçador, logo, se você é um usuário avançado nao irá encontrar nada de útil aqui!

Requisitos:
basicos de TCP/IP e implementacoes Servidoras de HTTP se faz necessario,
ademais um bom sistema operacional(nao windows) para se testar os esquemas
pode ser uma boa opcao.





--------------------------------------

2 - POSSÍVEIS TECNICAS |

-------------------------------------



A grande maioria dos Administradores de Redes sao muito displicentes quando

se trata de servidores de HTTP.Basta notarmos o grande numero de Servidores

WEB invadidos e alterados via tecnicas amplamente divulgadas na Internet.

As tecnicas que pretendo descrever aqui sao amplamente difundidas na Internet

e as implementacoes que envolvem as mesmas tambem jah sao um fato, muitas

vezes consumado, caberah a voce, amigo NewBie, ir mais fundo nas tecnicas

envolvidas e no crescimento de um aprendizado maior dos conceitos envolvidos.

Hoje em dia, a grande maioria dos fucadores prefere primeiro investir num

servico 'reconhecidamente' aberto, pois em redes ditas "seguras"(entre aspas)

uma simples implementacao de uma tecnica de scaneamento ou probe, como

quiser, seria um desastre total, voce correria um grande risco de ser

detectado e ateh mesmo rastreado, alem de que o IDS poderia barrar pacotes

enviados por voce, gastando assim um enorme tempo 'a toa'.

Grande parte da Comunidade de Seguranca ainda possui este conceito de um&nbsp;

atacante usando uma ferramenta como SATAN (hj em dia a moda eh o NMAP)&nbsp;

procurando portas abertas e em alguns casos ateh vulnerabilidades(Via Sscan,&nbsp;

NSS, VeteScan e etc).Sem duvida que tem casos que isto pode ser usado ainda,&nbsp;

na realidade na grande maioria das redes isto ainda eh possivel e tambem em

redes menores e que voce sabe que nao terah uma Ferramenta de IDS a sua&nbsp;

espera.Mas redes mais dificeis esta nao eh uma boa tecnica, entao, um fucador&nbsp;

certamente irah deixar isto para ultimo caso, e irah visar primeiro as portas&nbsp;

reconhecidamente abertas para todo mundo.

Uma dessas portas, e creio eu, a mais facilmente achada aberta no momento

eh a porta 80(www), logo, um atacante poderia primeiro procurar obter&nbsp;

acesso sobre esta porta sem nem mesmo dar uma 'scaneada' no host alvo atras

de portas de servicos abertas, evitando assim um FireWall e ateh mesmo um

IDS.Abaixo eu enumero alguns possiveis esquemas a serem implementados num

ataque a porta 80.



2.1. - Descobrindo o Sevidor

-----------------------------------



Descobrir com exatidao o Servidor WEB pode nao ser uma das tarefas mais

faceis em redes ditas 'seguras', pois a obtencao via BANNER pode nao ser

efetiva.Descreverei aqui os metodos mais usados para se tentar descobrir

qual Servidor WEB se estah rodando num host e qual Sistema Operacional o

mesmo possui:



* Obtencao do Servidor WEB via BANNER:



Todos os Servidores WEB possuem BANNERS padroes que na maioria das vezes

nao sao alterados.Em redes ditas 'seguras', certamente o Administrador da

Rede farah esforcos para retirar o Banner do Servidor WEB.Sao varias as

formas usadas para se tentar descobrir qual eh o Servidor WEB via banner,

algumas delas seguem abaixo:



+ Browsers -&gt; Atraves do seu proprio Browser voce pode obter informacoes

  &nbsp; &nbsp; &nbsp;sobre o Servidor WEB.No lynx, o modo mais facil eh acessarmos

  &nbsp; &nbsp; &nbsp;uma pagina do servidor alvo e digitar '='(igual)



Uma coisa nos interessa, os dados sobre o Servidor WEB:



Server: Apache/1.2.6



Mas Fica dificil saber qual Sistema Operacional o Servidor Alvo estah

Executando, no entanto, as chances dele estar executando Apache sao

consideraveis.



+ Netcat -&gt; O Canivete Suico da L0pht mais uma vez eh util na tentativa

  &nbsp; &nbsp;de obtencao do Servidor WEB, o netcat pode perfeitamente ser

  &nbsp; &nbsp;usado para descobrir dados da seguinte forma:



[localhost]# nc www.alvo.com.br 80

get

HTTP/1.1 400 Bad Request

Server: Microsoft-IIS/5.0

Date: Sat, 22 Jul 2000 08:49:22 GMT

Content-Type: text/html

Content-Length: 87



ErrorThe parameter is

incorrect. 




Como podemos ver, ele denunciou qual servidor estah sendo executado

atraves de um simples envio de 'get':



Server: Microsoft-IIS/5.0



As Chances do sistema operacional deste alvo ser um Windows NT sao

consideraveis.



+ NetCraft -&gt; Netcraft eh um exemplo de um site que nos informa qual

  &nbsp; &nbsp; &nbsp;Servidor WEB estah sendo executado num determinado alvo.

  &nbsp; &nbsp; &nbsp;Ele eh bastante util, pois pode fortalecer nosso anonimato

  &nbsp; &nbsp; &nbsp;quando usado em conjunto com tecnicas de Bouncing ou Spoof.

  &nbsp; &nbsp; &nbsp;Abaixo seguem dois links onde se pode procurar obter dados

  &nbsp; &nbsp; &nbsp;de um Servidor WEB via NetCraft:



http://www.netcraft.com/

http://www.ussrback.com/



Dificilmente eu chego a usar isto e devem existir bem mais por aih, como

se leva em consideracao a seguranca de uma rede alvo, dependendo do caso

usar ferramentas via sites como o da NetCraf nao eh aconselhavel, pois

talvez quanto mais anonimo voce estiver, melhor, se um Administrador

experiente ver uma requisicao vindo deste site, ele irah ficar alerta

esperando alguma invasao.



* Obtenção do Sistema Operacional



Obter o Sistema Operacional em redes ditas 'seguras' eh outro problema.

Um das tecnica mais usadas atualmente eh a obtencao do Sistema Operacional

atraves da tecnica conhecida como 'TCP/IP Stack Fingerprint', que procura

descobrir qual eh o sistema operacional do host alvo atraves de um banco de&nbsp;

dados contendo informacoes da implemetacao do Stack do TCP/IP e suas

particularidades em varios sistemas operacionais diferentes.Algumas

ferramentas scanners(Queso,Nmap, etc) trabalham em cima deste conceito,

enviando um pacote e analisando o pacote de resposta dado pelo servidor.

Abaixo segue um exemplo desta tecnica utilizando o Nmap:



[localhost]# &nbsp;nmap -sX -O localhost 80



Starting nmap V. 2.3BETA4 by Fyodor (fyodor@dhp.com,

www.insecure.org/nmap/)

WARNING: OS didn't match until the 3 try

Interesting ports on localhost (IP do Alvo):

Port &nbsp; &nbsp;State &nbsp; &nbsp; &nbsp; Protocol &nbsp;Service

80 &nbsp; &nbsp; &nbsp;open &nbsp; &nbsp; &nbsp; &nbsp;tcp &nbsp; &nbsp; &nbsp; http



TCP Sequence Prediction: Class=random positive increments

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Difficulty=1108477 (Good luck!)

Remote operating system guess: Linux 2.2.0-pre6 - 2.2.2-ac5



Note que ele nos denunciou um Servidor Linux, em alguns casos, com bons

banco de dados, esta tecnica pode ser bastante efetiva, mas em sistemas

mais 'seguros', isto falha.



* Problemas :



Como eu disse no inicio, existem Administradores que mudam os BANNERS, por

isso, nao se deve confiar muito na obtencao exata do Servidor WEB via BANNER.

Mas, voce pode ter uma ideia de qual realmente eh o Servidor WEB atraves de&nbsp;

uma uniao de dados obtidos via BANNER, Sistema Operacional, Programas que

Interagem com com o Servidor WEB(como scripts ASP, Banco de Dados, etc) e&nbsp;

etc.Deve-se agir sempre com bom senso quando se tenta descobrir qual SO e

qual WEB Server um determinado host estah executando.Abaixo segue um site

que deve ter seu BANNER alterado(capturado via lynx):



&nbsp; &nbsp;Linkname: Welcome to Rootshell | Hosted by connectnet.com

&nbsp; &nbsp; &nbsp; &nbsp; URL: http://rootshell.com/beta/news.html

&nbsp; &nbsp; Charset: iso-8859-1

&nbsp; &nbsp; &nbsp;Server: Rootshell/1.0.0 (--)

&nbsp; &nbsp; &nbsp; &nbsp;Date: Sun, 25 May 1997 05:14:36 GMT

&nbsp; &nbsp;Last Mod: Wed, 02 Apr 1997 17:04:36 GMT

&nbsp; &nbsp;Owner(s): None

&nbsp; &nbsp; &nbsp; &nbsp;size: 414 lines

&nbsp; &nbsp; &nbsp; &nbsp;mode: forms mode



Note o 'Server', nao conheco este servidor de http, creio que o BANNER foi

alterado com sucesso no caso acima.





2.2. - Vulnerabilidades no Servidor

------------------------------------



Sem duvida, que esta eh a Tecnicas mais difundida e usada no momento.

Condicoes de Buffer Overflow, mah configuracao de programas, Furos no

Servidor WEB, enfim, nao sao poucas as vulnerabilidades encontradas

ultimamente nos servidores WEB, especialmente no famoso IIS da Microsoft.

Mas como nosso cenario eh outro(estamos supondo uma rede que leve em

consideracao a seguranca, logo, as chances de voce achar uma rede deste

tipo usando Windows sao pouquissimas!!), o principal programa servidor no

momento eh o Apache.O Apache eh um programa complexo que goza de um certo

respeito pela Comunidade Hacker por possuir seu codigo fonte aberto.Mas como

eu disse, eh um programa complexo, que cada vez mais vem tendo um aumento

de linhas de codigos e de funcoes, logo, as chances de se descobrir um

furo no Servidor Apache sao consideraveis.Um fucador deve pesquisar

incessantemente os programas ditos 'mais seguros' e procurar furos no mesmo.

Conseguindo descobrir um furo 'perigoso' num desses programas, redes ditas

"seguras" podem facilmente serem 'conquistadas' por ele.



Quanto aos outros servidores, o IIS demonstrou e vem demonstrando ser uma

verdadeira peneira, logo, ao meu ver o numero de redes ditas 'seguras'&nbsp;

usando isto sao poucas e deve diminuir cada vez mais.Existem varios outros

servidores de HTTP, alguns especificos para determinada plataforma(Sistema

Operacional) que devem conter inumeras vulnerabilidades.Abaixo eu enumero

alguns deles e aonde voce pode encontrar informacoes sobre os mesmos:



America On Line Server(AOL) - http://aolserver.com/dist/aolserver3_0/

Apache - http://www.apache.org/dist/

Zeus WEB Server - http://www.zeustechnology.com/downloads/

StrongHold(Apache + SSL) - http://www.int.c2.net/



Sendo que destes acima, eh mais facil encontrarmos o ultimo, 'StrongHold,

ou algum Apache com Criptografia Forte em redes ditas 'seguras'.



Agora, para que voce possa estar apto para nao soh procurar e descobrir

furos, mas acima de tudo 'exploita-los' recomendo muito estudo! As

tecnicas de 'Auditoria de Software' sao varias, mas nao basta soh isso,

voce precisa fucar,nao adianta somente ter a teoria, conhecer o conceito,&nbsp;

mas acima de tudo, voce precisa fucar!! Como se fuca??? Execute o programa&nbsp;

de formas diferentes,interaga ele com outros, mecha, altere coisas nele, crie&nbsp;

situacoes, tente exploita-lo via tecnicas jah difundidas, procure furos no&nbsp;

codigo fonte, veja a reacao dele a determinadas acoes maliciosas, enfim fuce!!

Mexa nele de forma diferente! Acredite sempre que lah tem um furo a sua

espera!!O dominio de algumas tecnicas se faz necessario, mas mesmo sem

saber muito sobre elas, nada o impede que voce fuce e busque mesmo um furo

na 'doida'!! Isso mesmo, tente achar na marra!!Abaixo seguem furos jah

divulgados que envolvem um servidor WEB ou algum programa que interaja com

Servidores WEB:



* BUFFER OVERFLOWS -&gt; Tecnica Classica que jah possui material divulgado

   &nbsp; &nbsp; &nbsp;pelo Aqui no Blog.Consiste em atraves do envio

   &nbsp; &nbsp; &nbsp;de dados ou parametros para o servidor WEB ou algum

   &nbsp; &nbsp; &nbsp;programa banco de dados ou que interaja com o servidor

   &nbsp; &nbsp; &nbsp;WEB, o atacante consiga gerar um estouro de buffer

   &nbsp; &nbsp; &nbsp;executando codigo malicioso no servidor alvo.

   &nbsp; &nbsp; &nbsp;Exemplo desta tecnica eh um furo no IIS 4.0.



* META CARACTERES -&gt; &nbsp;Este eh um problema comum em script CGIs que veremos

   &nbsp; &nbsp; &nbsp;mais abaixo, mas eh possivel que algum arquivo do

   &nbsp; &nbsp; &nbsp;servidor WEB nao filtre direito metacaracteres e deixe

   &nbsp; &nbsp; &nbsp;passar varios tipos de requicicoes como "../../../",

   &nbsp; &nbsp; &nbsp;"/..../" e etc. Exemplo desta Tecnica pode ser visto

   &nbsp; &nbsp; &nbsp;no FrontPage 3.0.2 que nao filtrava alguns meta

   &nbsp; &nbsp; &nbsp;caracteres permitindo requisicoes, como a vista abaixo:

   &nbsp; &nbsp; &nbsp;http://www.alvo.com/..../Windows/Admin.pwl;



* PERMISSÕES -&gt; Alguns Scripts podem vir com permissoes de escrita ou

  execucao para todo mundo, ateh mesmo existem executaveis

  de carregamento e download de arquivos que podem ser usados

  por atacantes para enviar e executar arquivos no servidor

  alvo.Exemplo disso eh um bug do Frontpage, onde se pode

  enviar e sobrescrever uma pagina do servidor sem a

  necessidade de autenticacao.



* MAH CONFIGURAÇÃO -&gt; O 'Furo' acima pode muito bem ser caracterizado aqui,

   &nbsp; &nbsp; &nbsp;neste item, onde atraves de erros de configuracao

   &nbsp; &nbsp; &nbsp;determinadas situacoes podem ser usadas para se tirar

   &nbsp; &nbsp; &nbsp;proveito, o atacante teria antes que simular diversas

   &nbsp; &nbsp; &nbsp;maneiras de configuracao de um servidor WEB.Um exemplo

   &nbsp; &nbsp; &nbsp;disso eh o problema com PHP, sendo que jah tem um

   &nbsp; &nbsp; &nbsp;artigo aqui no Blog abordando este problema,

   &nbsp; &nbsp; &nbsp;no qual eh possivel executar qualquer script PHP,

   &nbsp; &nbsp; &nbsp;inclusive uma bindshell em qualquer diretorio do

   &nbsp; &nbsp; &nbsp;servidor alvo.

   &nbsp; &nbsp; &nbsp;

* PROGRAMAS INTERATIVOS -&gt; Banco de Dados, Script CGIs, WebForum, Scripts

    &nbsp; de Formularios, Programas de WebMail, enfim,

    &nbsp; hoje em dia existe um 'leque' de opcoes de

    &nbsp; programas que sao usados em conjunto com o

    &nbsp; servidor WEB.No caso de redes ditas "seguras",

    &nbsp; procurar furos em aplicativos que interagem ou

    &nbsp; recebem parametros e dados via Servidor WEB pode

    &nbsp; ser uma boa opcao.Varios sao os furos encontrados

    &nbsp; em milhares destes programas sendo que as tecnicas

    &nbsp; descritas acima tambem se aplicam a esses programas.

    &nbsp; Exemplo disto eh o UltraBoard 2000 CGI usado para&nbsp;

    &nbsp; programas de WEBForum que nao filtra o NULL byte

    &nbsp; (\000) e permite varios tipos de exploitacao.

    &nbsp; A Requisicao abaixo pode consumir os recursos de

    &nbsp; um sistema:

    &nbsp; QUERY_STRING=Session=../UltraBoard.pl%7c

    &nbsp; outro mais perigoso poderia ser:

    &nbsp; QUERY_STRING=Session=../UltraBoard.pl

     &nbsp; &nbsp; &nbsp; &nbsp; ?Action=PrintableTopic

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;?Post=../../etc/passwd\000

     &nbsp; &nbsp; &nbsp; &nbsp; ?Board=IDS?Idle=10?Sort=0?Page=0

    &nbsp; Se o servidor estah bugado, teriamos entao o

    &nbsp; passwd na tela.

    &nbsp;&nbsp;



* OUTROS -&gt; Condicoes de Denial Of Service sao bastante comuns em Servidores

  &nbsp; &nbsp;WEB, mais uma vez o alvo preferido eh a peneira do IIS da

  &nbsp; &nbsp;Microsoft.Como eu jah disse, em alguns casos o Denial of Service

  &nbsp; &nbsp;pode ser uma excelente tecnica efetiva principalmente na

  &nbsp; &nbsp;reinicializacao de um Servidor NT, no entanto devemos nos lembrar

  &nbsp; &nbsp;do IDS e contemplar que perigos estaremos correndo frente a

  &nbsp; &nbsp;este programa.





Fiquem atentos as publicações de&nbsp;A Melhor Defesa é o Ataque&nbsp;pois é meu objetivo

expandir e trocar mais informações sobre todas as técnicas usadas por&nbsp;

fuçadores em toda e qualquer implementação, incluso hacking de WEB.