[TUTORIAL] DEFACE HACKEANDO WEB

13/06/2011 20:11

HACKING DE WEB *
--------------------------------------------------------------------------------
INDICE -----------------------------------
1 - INTRODUCAO
2 - POSSIVEIS TECNICAS
2.1. - Descobrindo o Servidor
2.2. - Vulnerabilidades no Servidor
2.3. - Furos em CGIs
2.4. - Furos em HTML
2.5. - Brutal Force
3 - BACKDOORS
3.1. - HTTP Tunel
3.2. - Backdoor em CGI.
4 - TERMINANDO
4.1 - Links e Referencias
4.2 - Consideracoes Finais
--------------------------------------------------------------------------------
1 - INTRODUCAO |
Existem centenas de Script Kiddies mudando paginas Internet a fora atraves de mas implementacoes de Servidores WEB.No entanto, o Servidor WEB mais atacado eh o que menos se encontra em redes dita 'seguras'.Neste artigo eu pretendo abordar alguns esquemas bem mais uteis que apenas alterar uma pagina do servidor, e tambem pretendo descrever formas basicas de se atacar um Servidor WEB mais seguro, num Sistema Operacional menos Inseguro (Varios Unix).Este eh mais um artigo que possui como alvo a divulgacao de Conceitos e Teorias ao pessoal NewBie Fucador, logo, se voce eh um usuario avancado nao irah encontrar nada de util aqui! Conhecimentos 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 - POSSIVEIS 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 atacante usando uma ferramenta como SATAN (hj em dia a moda eh o NMAP) procurando portas abertas e em alguns casos ateh vulnerabilidades(Via Sscan, NSS, VeteScan e etc).Sem duvida que tem casos que isto pode ser usado ainda, 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 espera.Mas redes mais dificeis esta nao eh uma boa tecnica, entao, um fucador certamente irah deixar isto para ultimo caso, e irah visar primeiro as portas 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 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 -> Atraves do seu proprio Browser voce pode obter informacoes
sobre o Servidor WEB.No lynx, o modo mais facil eh acessarmos
uma pagina do servidor alvo e digitar '='(igual).No site
https://unsekurity.virtualave.net/ temos o seguinte:
Linkname: Unsekurity Team
URL:
https://unsekurity.virtualave.net/ Charset: iso-8859-1
Server: Apache/1.2.6
Date: Sat, 22 Jul 2000 08:13:46 GMT
Owner(s): None
size: 25 lines
mode: normal
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 -> O Canivete Suico da L0pht mais uma vez eh util na tentativa
de obtencao do Servidor WEB, o netcat pode perfeitamente ser
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
The 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 -> Netcraft eh um exemplo de um site que nos informa qual
Servidor WEB estah sendo executado num determinado alvo.
Ele eh bastante util, pois pode fortalecer nosso anonimato
quando usado em conjunto com tecnicas de Bouncing ou Spoof.
Abaixo seguem dois links onde se pode procurar obter dados
de um Servidor WEB via NetCraft:
https://www.netcraft.com/whats/
https://www.ussrback.com/principal.html
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.
Obtencao 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 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]# 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 State Protocol Service
80 open tcp http
TCP Sequence Prediction: Class=random positive increments
Dificulty=1108477 (Good luck!) Remote operating system guess: Linux 2.2.0-pre6 - 2.2.2-ac5
Noteque 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 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 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):
Linkname: Welcome to Rootshell | Hosted by connectnet.com
URL:
https://rootshell.com/beta/news.html Charset: iso-8859-1
Server: Rootshell/1.0.0 (--)
Date: Sun, 25 May 1997 05:14:36 GMT
Last Mod: Wed, 02 Apr 1997 17:04:36 GMT Owner(s): None
size: 414 lines
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' 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) -
https://aolserver.com/dist/aolserver3_0/ Apache - https://www.apache.org/dist/
Zeus WEB Server -
https://www.zeustechnology.com/downloads/ StrongHold(Apache + SSL) - https://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, mas acima de tudo, voce precisa fucar!! Como se fuca??? Execute o programa de formas diferentes,interaga ele com outros, mecha, altere coisas nele, crie situacoes, tente exploita-lo via tecnicas jah difundidas, procure furos no 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 -> Tecnica Classica que jah possui material divulgado
pelo Unsekurity Team.Consiste em atraves do envio de dados ou parametros para o servidor WEB ou algum programa banco de dados ou que interaja com o servidor WEB, o atacante consiga gerar um estouro de buffer executando codigo malicioso no servidor alvo. Exemplo desta tecnica eh um furo no IIS 4.0.
META CARACTERES -> Este eh um problema comum em script CGIs que veremos
mais abaixo, mas eh possivel que algum arquivo do servidor WEB nao filtre direito metacaracteres e deixe passar varios tipos de requicicoes como "../../../", "/..../" e etc. Exemplo desta Tecnica pode ser visto no FrontPage 3.0.2 que nao filtrava alguns meta caracteres permitindo requisicoes, como a vista abaixo:
https://www.alvo.com/..../Windows/Admin.pwl;
PERMISSOES -> 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 CONFIGURACAO -> O 'Furo' acima pode muito bem ser caracterizado aqui,
neste item, onde atraves de erros de configuracao determinadas situacoes podem ser usadas para se tirar proveito, o atacante teria antes que simular diversas maneiras de configuracao de um servidor WEB.Um exemplo disso eh o problema com PHP, sendo que jah tem um artigo do Unsekurity Team abordando este problema, no qual eh possivel executar qualquer script PHP, inclusive uma bindshell em qualquer diretorio do servidor alvo.

PROGRAMAS INTERATIVOS -> Banco de Dados, Script CGIs, WebForum, Scripts
de Formularios, Programas de WebMail, enfim, hoje em dia existe um 'leque' de opcoes de programas que sao usados em conjunto com o servidor WEB.No caso de redes ditas "seguras", procurar furos em aplicativos que interagem ou recebem parametros e dados via Servidor WEB pode ser uma boa opcao.Varios sao os furos encontrados em milhares destes programas sendo que as tecnicas descritas acima tambem se aplicam a esses programas. Exemplo disto eh o UltraBoard 2000 CGI usado para programas de WEBForum que nao filtra o NULL byte (
Chamadas Para o Sistema:
Se o Script cgi nao seta corretamente meta-caracteres e caracteres ASCII, o Servidor WEB corre um serio risco.Se o atacante possui acesso local ao sistema, ele pode setar a variavel Environment 'PATH' e tentar executar codigo malicioso como usuario comum.
Abertura de Arquivos:
Varios problemas que tambem envolvem meta-caracters e variaveis environment.Em alguns casos eh possivel redirecionar entradas e saidas.
Um Tutorial mais amplo estah a caminho, nele poderemos ver exemplo praticos e especificos que envolvem estes problemas em algumas linguagens para escrita de CGIs.
Procurar um CGI valido numa rede complexa e grande tambem nao eh nada facil. Existem centenas de programas que procuram CGIs automaticamente em servidores WEB, mas a grande maioria, quase todos, nao sao bons programas. Abaixo segue um script criado por ben-z que vem junto com o Vetescan e alterado por mim para facilitar ainda mais o seu uso:
cgichk.sh --------------------------------- #!/bin/sh # cgiscan.sh by ben-z [3/23/99] # written for use in fts-rvscan # Alterado por Nash Leon. # Uso: ./cgichk
www.alvo.com # OBS: Necessita do Netcat instalado em sua maquina(nc).
if [ "$#" != 1 ]; then
echo "CGI - Scanner by ben-z e Alterado por Nash Leon." echo "Uso: sh cgichk.sh "; echo " " echo "Exemplo: sh cgichk.sh
www.alvo.com" exit 1
fi
clear
echo "CGI-Scanner by ben-z e Alterado por Nash Leon" echo "Comecando Scaneamento...."
echo " "
contador="0"
rm cgilist 1>/dev/null 2>/dev/null

...............................