Unsekurity Scene Desenvolvido por Martin Fallon. mar_fallon@yahoo.com.br Estes e outros artigos podem ser obtidos em: http://unsekurity.virtualave.net/ OBS: Elites, Pseudo-Elites e Analistas de Seguranca, nao percam o tempo precioso de voces lendo este simples artigo! Este artigo eh voltado a toda comunidade NewBie,em especial a Comunidade Unsekurity Scene! *********************** * FTP + SSI = SHELL * *********************** 1 - Introducao 2 - Configuracoes Bugadas 3 - Exploitando o Sistema 4 - Consideracoes Finais 1 - Introducao --------------- Existem dezenas, talvez ateh centenas de textos descrevendo os problemas existentes na mah configuracao de servidores WEB permitindo execucao e uso de SSI.O motivo d'eu estar escrevendo mais um texto falando sobre como obter acesso shell em servidores com SSI eh que a maioria dos textos sao vagos em aspectos hacking! Nao demonstram com clareza aonde esta tecnica eh aplicada e nem quais os reais perigos de se estar vulneravel a ela! Olhando pelo lado do hacking etico, realmente eu ainda nao vih um texto que falasse com clareza, como se exploitar um sistema e como tirar vantagem em cima desta tecnica! Nao quero com essas linhas menosprezar algum escritor, afinal, eu nao lih todos os possiveis textos e alguns textos que abordam este assunto sao bastante bons para o pessoal da seguranca(only security). Server Site Include, vulgarmente conhecido como SSI, eh um recurso usado em websites para criar dados dinamicos em paginas .html! Atravez de uma "meta-tag", eh possivel se passar parametros atuais e dinamicos como respostas as requisicoes dos navegadores.O formato de um Server Site Include segue descrito abaixo: Existem varios "elementos", mas para nos(fucadores) a que mais interessa eh a "exec"(em alguns casos a echo tb - veja o manual do apache para maiores detalhes sobre os atributos de SSI).O elemento exec eh responsavel por executar comandos shell na maquina alvo! Muitos jah devem estar vendo a trivialidade da tecnica! Mas, vamos com calma. 2 - Configuracoes Bugadas -------------------------- Varios e varios sistemas e servidores web podem estar vulneraveis a implementacao desta tecnica! Procurando facilitar a vida dos "webmasters", muitos administradores de rede se esquecem dos problemas existentes em se habilitar a execucao de parametros SSI. Para que o ataque possa ser bem implementado, algumas informacoes nos devem ser fornecidas: * Uma conta de FTP no sistema alvo com direito a "atualizacao" de home pages; * Servidor WEB permitindo o uso de SSI.Voce pode saber se ele estah executando ou nao, das seguintes maneiras: + Captura do arquivo httpd.conf do apache ou de configuracao dos outros Web Servers.No apache, devemos procurar(mais ou menos) pelas seguintes linhas descomentadas: Options FollowSymLinks Includes AllowOverride None #O que nos importa eh este "Includes" Options Indexes FollowSymLinks MultiViews Includes Se voce achou esses "Includes" descomentados nas linhas, entao existe uma chance muito forte do servidor alvo estar permitindo a passagem de instrucoes SSI.E se vc achar a linha abaixo descomentada, maior chance ainda: AddHandler server-parsed .shtml + Teste SSI no sistema.Se voce nao tem acesso ao httpd.conf, ou nao sabe aonde o senhor "root" instalou o apache, voce pode testar se o sistema permite o uso de SSI atraves de um simples .shtml teste: Seu Diretorio Atual Tem:
Depois voce envia um "get" via navegador para a pagina escrita, e se aparecer os arquivos do seu diretorio FTP, entao comemore! Voce tem acesso a comandos da shell! Um passo para controlar todo o sistema! Se voce checou e viu que o sistema estah bugado, entao o proximo passo eh exploitar o uso de SSI para obter vantagens. 3 - Exploitando o Sistema -------------------------- Temos acesso FTP, o sistema tah permitindo o uso de SSI.O sistema nao eh linux! Eh um mainframe de grande porte rodando sabe-se lah qual unix! Mas eu sei que eh Unix! E se eh unix, eu posso fazer "coisas" com ele! Nao imaginando uma situacao trivial na qual bastaria enviar uma bindshell compilada estaticamente em nossa maquina local para o host alvo e depois executar esta bindshell via SSI, vamos mais alem! Se o sistema nao for um dos que voce tem, voce precisarah improvisar!! Entao, fucemos! * Inetd Criamos um arquivo de configuracao para chamarmos o inetd com o seguinte conteudo: 20000 stream tcp nowait root /bin/sh sh Enviamos o arquivo para o servidor alvo.Depois enviamos o arquivo .shtml responsavel pela execucao do SSI: ------------------------- taxi_lunar.shtml ---------------------------- Martin Fallon largado pela amada! "Ela me deu o seu amor.. eu tomei..
no dia 16 de maio, viajei..
Espaconave atropelado, procurei..
O meu amor aperriado!!

Apenas apanhei na Beira-Mar
um taxi pra estacao lunar!

Bela linda criatura, bonita
Nem menina, nem mulher
Tem o espelho do seu rosto, de neve
Nem menina, nem mulher

Apenas apanhei na Beira-Mar
um taxi pra estacao lunar!

Pela sua cabeleira, vermelha
pelos raios desse sol, lilaz
pelo fogo do seu corpo, incendeia
belos raios desso sol

Apenas apanhei na Beira-Mar
um taxi pra estacao lunar!"

(Taxi Lunar - Zeh Ramalho) ------------------------------------------------------------------------ Aih eh apenas mandar brasa! Get no navegador para a pagina alvo e depois: # telnet localhost 20000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. id; uid=99(nobody) gid=98(nobody) groups=98(nobody) : command not found exit; Connection closed by foreign host. Podemos ir mais alem, lembre-se que eh o usuario "nobody" que estarah executando o SSI, logo, em varias redes, ele nao eh chrootado!:)(Respondi o desafio!!)..Que o diga a rede da XXXXXX e da YYYYYYYYYYYY e tambem da ZZZZZZZZ, ops, outra alih tb!! Serao todas?!?!?!?!:). chroot e seus conceitos defasados! * Bindshell Envia-se um codigo de uma bindshell para o host alvo e manda ele compilar por lah: