Busca


imprimir pdf

No Hack Allowed



De forma a evitar a exploração dos bugs de segurança sobre algumas aplicações como phpnuke, colocamos um reencaminhamento de todas as páginas admin.php para no.hack.allowed.ovh.pt

E o que se faz agora?


Pode como é claro continuar a fazer funcionar o seu site modificando simplesmente admin.php num outro ficheiro. Dê-lhe outro nome para evitar eventual hack. Por exemplo meu_admin.php.

Pode utilizar um freeware que lhe irá permitir modificar admin.php para outra coisa em todas as suas páginas html/php. Em mac/php tem BBEdit (versão lite gratuita) http://www.barebones.com/products/bbedit/.

Não se esqueça a seguir de proteger esta página (encontrará tudo o que precisa nestes guias):

Este medida é definitiva


É muito provável... Quando encontrarmos outra solução mais simples, colocaremos então em prática. Por enquanto os problemas gerados por esse bug de segurança, que existe neste ficheiro são susceptíveis de lhe causar e de nos causar demasiados problemas para ficar sem fazer nada. Estamos conscientes da inconveniência causada mas não podemos deixar as coisas assim por enquanto.


O que significa esta história de hack?


admin.php é o nome do script utilizado por muitos programas opensource (entre outros) que os permite administrar. Não se trata do mesmo script de uma aplicação para outra, mas muitos projectos tiveram bugs de segurança devido a este ficheiro que possui este nome. Aqui estão algumas páginas que tratam deste assunto. Deite uma vista de olhos para dar conta da magnitude da frequência destes problemas.

Num mundo perfeito, todos os webmasters colocariam em dia imediatamente a versão do software que eles utilizam quando existe um problema de segurança.

Infelizmente, não vivemos num mundo perfeito e muitos sites têm este problema de segurança. E geralmente, nenhumas restrições de acessos são definidas para este script. Portanto, é relativamente simples estabelecer um .htaccess.

O hacker tem então apenas que verificar se a página existe, testando muito simplesmente os links standards: por exemplo http://votresite/admin.php.

Se a página existir, ele testa se admin.php é vulnerável. Se é o caso, ele tem controlo total sobre o site. Ele pode apagar os ficheiros, modificar o conteúdo do site ou simplesmente instalar uma backdoor que lhe irá permitir voltar outro dia.

Esta tomada de controlo acaba muitas vezes com a eliminação da página index do site ou de todo o site. Mesmo que disponha de 5 backups acessíveis apenas em modo de leitura BackupsSobrePlan, não deixa de ser chato.

É preciso salientar que o hacker não pode aceder aos outros sites alojados sobre as nossas máquinas. Temos um nível de segurança baseado em chroot que permite garantir essa opção.

Mas há pior.

O hacker pode também lançar um ataque a partir das nossas máquinas sobre os IP da Internet. A nossa rede é muito grande e podemos sem problemas debitar 100Mbs ou 200Mps ou mais. É o que se passou várias vezes. O resultado é uma indisponibilidade do serviço de alojamento durante uma dezena de minutos.

cccvalden 3685 0.0 0.8 12704 4516 ? S 03:23 0:00 php admin.php Çúÿ¿
cccvalden 3687 0.0 0.1 1644 752 ? S 03:23 0:00 sh -c /tmp/." "/s 200.217.189.100 65535 9999 1> /tmp/4843output 2>&1;
cccvalden 3688 1.9 0.0 1152 404 ? R 03:23 1:52 /tmp/. /s 200.217.189.100 65535 9999

ou ainda
mmoreva 25081 0.0 0.8 12704 4516 ? S 18:48 0:00 php admin.php ÿúÿ¿
mmoreva 25083 0.0 0.1 1644 752 ? S 18:48 0:00 sh -c ./s 200.241.255.83 65535 9999 1> /tmp/4843output 2>&1; cat /tmp
mmoreva 25084 6.5 0.0 1152 404 ? S 18:48 2:11 ./s 200.241.255.83 65535 9999


O hacker consegui descarregar um código fonte e compilá-lo, para depois de lançar um ataque DOS sobre 200.217.189.100, ter o objectivo de tornar esse IP inacessível. Mas ao mesmo tempo, colocou na nossa rede várias máquinas críticas indisponíveis.

Em relação a este admin.php, trata-se de um script php que realiza um exec:
# grep exec ./www/concom/admin.php
@ $changedir = exec("pwd");
@ $changedir = exec("pwd");
$changedir = exec("$temp[0]; pwd");


dentro de $temp[0] podemos passar tudo como comando Unix. Podemos então descarregar os ficheiros, compilá-los e executá-los.

Ainda por cima, podemos ver nesse cliente que ele possui vários.

# find -name admin.php
./www/concom/admin.php
./www/admin/actumedia/admin/admin.php
./www/arno24/actumedia/ben25/admin.php
./www/rando/admin.php
./www/gallerie/admin.php
./www/gallerie/ /admin.php


Pode também ver que o último é um script provavelmente copiado pelo hacker para dentro de um directório com espaço. O hacker configurou então uma backdoor com a esperança que ninguém desse conta da existência do directório.

# cd ./www/gallerie
# ls -al
total 92
drwxr-xr-x 2 cccvalden users 4096 nov 24 23:28
drwxr-xr-x 8 cccvalden users 4096 nov 24 23:29 .
drwx
r-x 20 cccvalden users 8192 nov 27 11:32 ..
-rw-r--r-- 1 cccvalden users 2762 oct 23 18:40 admin.php


É preciso ter alguma experiência para ver esse directório. Será que o o hacker instalou outras backdoors (com um nome de ficheiro diferente)?

# fgrep "exec(" * -r
www/concom/admin.php: @ $changedir = exec("pwd");
www/concom/admin.php: @ $changedir = exec("pwd");
www/concom/admin.php: $changedir = exec("$temp0; pwd");
www/readme.php: $work_dir = exec("pwd");
www/rando/admin.php: @ $changedir = exec("pwd");
www/rando/admin.php: @ $changedir = exec("pwd");
www/rando/admin.php: $changedir = exec("$temp0; pwd");
www/gallerie/admin.php: @ $changedir = exec("pwd");
www/gallerie/admin.php: @ $changedir = exec("pwd");
www/gallerie/admin.php: $changedir = exec("$temp0; pwd");
www/gallerie/ /admin.php: @ $changedir = exec("pwd");
www/gallerie/ /admin.php: @ $changedir = exec("pwd");
www/gallerie/ /admin.php: $changedir = exec("$temp0; pwd");


Aparentemente não, mas é preciso manter-se vigilante.

Tivemos ao todo 7 ataques:



Pode ver 3 ataques entre as 3h e as 5h da manhã. 2 ataques entre as 6h e as 7h. Um pequeno corte às 14h30 devido a um ataque que ficou interno, depois 1 ataque às 19h00, e depois mais um corte. O tamanho do ataque foi entre 100Mbs e 200Mbs sobre 800Mbs no total.