From 2cd6116a8c41f1e6d9f23ff70d68559fb74fd63e Mon Sep 17 00:00:00 2001 From: derv82 Date: Sun, 1 Apr 2018 00:54:49 -0400 Subject: [PATCH] Move Pyrit logic to tools/pyrit.py --- tests/files/handshake_has_1234.cap | Bin 0 -> 125191 bytes wifite/model/handshake.py | 53 ++------------------------ wifite/tools/pyrit.py | 59 +++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 50 deletions(-) create mode 100644 tests/files/handshake_has_1234.cap create mode 100644 wifite/tools/pyrit.py diff --git a/tests/files/handshake_has_1234.cap b/tests/files/handshake_has_1234.cap new file mode 100644 index 0000000000000000000000000000000000000000..b812010d193a34fc638579dc8b3d74c38d54be2c GIT binary patch literal 125191 zcmeIb33wF6x<1~Moe;v1?ioT@92POe00Txq)-fysB8-Tjs2JHq4HywIB1=TX$Px!c zL_i!65fCvTA|m355ilSGL_`i?Kt#oe10o_z@~^6y>i%lFx{Gtpo&WE7?wvf(;JxR4 z>;1m^s=B)NKJdl*rBPChME|O)B%Ha5J(Ncm%BEJIkzg3aH)Pp-lKb9K! zxBRApeNDz7iZonm6(hynJ9y9|BOkFOOr17!eo{(mlW0rz*cb`n85XH^jI(D>Zu7MF zEOn6%N)q_PiGzQg?A4`M`u~9c_D)u$L@Cpkw&Z>z2~dYEtwR3*uExIa(i)VywL-i`CjqvP4-sN|tDAFDXuHn;}^oP6e@Q zu89HvMoH39J4%Gpqom;9C>$62%4o@o%;Vn%X|uF^c84MI&hzI+FUh(d5=${DgKsO;`qN>I}-nJ)&H6s;!t}j zk>3II-@vm&k_X`*6u5w_y>j%wpY%AWf!4 zOB1uz2(k394$?@{q1QHl)Z;L=W4WJ$93pk2G)X#!Y771)WV3Jk{C-{UTzt@zRr3QW z2fv}~-~Oikvl8XYx4KnYH&jlw+*AL^r{9lsZ@jDNsIfO3s<>};<0qb*K0IUFqOw7? zPL8TRd&8aAy?*zu`Zf2zGos!*;3XzBxF3@E_AF#_sP?wbNHE;l~gE z?Av~RwUp2L?L4>Vh5MtDcYOTJlx?4`pLF__oS%DLE?f|Q-SsclIo>WY;gKzK9 z_`ka|68~_$J?y>3@z4J@68~_;U%p2i|BN3a@ef!0?VcK7bl2GuI=ZvZ*WMf@(xbuA zA9-_Jf=J(BN`f>=7Q9n@S;yD5jJ#9A^-h@}iho&_CDs{ny37LJS5XfhJ9iqn7g(mU?iqqO$G_1 znT(JcDN!m?BHbSyNJEg`5NQ&tAu(yJ*EyDXS##RqG&N5qYOSz!zEt>L*ZoiLlm>qN znExJ(C#P2j_!1pnvqg0#c7c=ul~~D{7MRPds=`_^ec_mhj<7Hib&nBJvj8G=jE&RO z-m1l}L@Eu|6O7o4;QL`DM7kw|*qsB2WwD0fk{~0wL&Ue0EaIEEZ}7?q1S#erQ;-KX zca#=2sWKiu4+I|oOKM5b4~*ECK%@vFryxReMbsXR1-VKNz7H`{^=35{!MRF|Dnhjt zBdK!}nR0_3#!BU<=(9w)C7_N-$*$AQ^a?mC34?cH-mMB*Q& z_*YM5`!|7p2YEA$6^^mnrpM<-N+wJtV=oZLf4>}wf4JTZ@+@)uw>6B!KWy>80OB8f zGqZEt#clh~jKn`&@wcJ*2yF)kJI6qJPEKuoS{taQ$9Y6Afq3ALVLR zHYUOG3BgO??1Ub-^|k;nhg1(uZ<}XPM^PoxnBe$|D6fSn&oCn+g4^LZa9NyAIZc3< zL!2FX5&a~%L#B6ZsDABaIF~XuIGQ9W8^M%p$q;;u+5Cy;JRKhr?o>0b?|iVRNLkqy zLyzV|kH*D-DAVyR*0(K;0p-)TT4*k98F2hdXNrku8)8jHx!y~3W(RW>dmON$kBANR z^0iu)tt)HW0&R|^M4A9=i4UgK*AiO^#P{fGiL%`sx7p)?XB^L4K%7&*E5IC&bUNsH zV4u}g6q%|yTK&hf2!SFTE)Kk#qeL1URK`fE z5@k|@97*&!AXfI6J_ofR*M15sK$Ti%R}dcrX3A@Lt5nh$Wd?|FV%B>v%w|49&k?tEBY`?RTVMdBZ> z_@mu#=KG=x+ArA>iGMgoJ*53<2jb72k1S|^`P)eR!xjIli$wAFv>(=Pd8GXbSNpRc z#Gl*#d)wE|i^M-%_5boBZG?sTtZ`bO)q+m`sBZ@Dp3k!OnHyF_o{Vrk85>0LFK^$u z|2vWRhbjJ+gCPFg`Cxzhr^iL&AFh^3&P>wUA8!1m4vR}8@ef!0D_d%NrtmyRU`_(} zS*12C(tw;k#YogZZ8sH8qapT7+N_B-dxO*1)6DiEy6V%Juon>5W`}ccYlAac1Q}(v z29Vc)?m#5m25=^xoyj7&!yJ##)#iC{F0FDa=gpZUB|@}$Uyd?JsqI%JDSgZwAG0fx z;Pv3_8b>)9&VjLWfFykioIUFi6_`WBNaaJ?Uc?e~G`I7e%j-|R6C+XEwY~w)XJD5i zM&ggKNTAn%k?I5488r>Dm1(s`s{uHTEgA0aE@D6BC%3&HPWdxt#laJF?tP(Lt#j&W&?R$sKT$4J%pT4`VewF`rOe4HT7wPze7$t2nYxtT=* zX$p~A?0L;YoF*_ciV(2O)+k74RC2AlLL~zk^cS7p7{25iZ1;z(tip={|U#x z#sS_8I!0oSX)OU;=JGkwJHNcspRfNEDYGz@SxQgQ9teM@cl?p~hojGhpA2aL+qMS! zPZ*KW2`6%kR-E_jQ>vBzr$QR;u?)Nh!#4kWQuo&IJ?_}q`x2H?5Km_ zc`z3Oh6Lsn1%=SFx4XO$jEYZq@V_K%BA;dUGzI$Lzv$ufz z963+eLWt{I9{Xa5v-^;UmtJ$+w%p9u@_S)TwjYFA`smvJTl@%&D4kirxv-(#pvDoE z2E&%oegb;Q?i?jrJ>WjfGw?}4h_MyN;HqF_P2xHZ&Tw(cZ8F3;@4v*y3et~}b)R(Wl zy_rYeVX%*4?<~+7YNk~-tO~qk?TD-SrEkq`W8j<^JFADw$X2Y)&T4z;39<03B^du^^t zn_-@TA{NtGYhiH@J}{q+5oJA$H9P-^aoZ9&uihZ|BvHh;J{PE-W3C;k7;`-%XidZ1 zs(sq5JRVa7X2UTeAE+knLf+#azDLX=4UweFfiZ009x-hNl*tEbPs`dRAZy9fUjyFR7Hrz4v8aDQ`d#Um%09WI^}^LhWmF0Y;O z)cbOgZC&O=r7OO@ZTsO~bGw$VuC@1z?^+((_`%Tg6MlHxacus`*{9#W;o}$YjXr08 zZrjPsuLo4G^IPeGZ66JDk4qY}_?C)WZ{2%PAzCLX+p-CkM3GcvX%f3oO6m{6s*{^vxrmL5Mmr!-w665$6RHF zHppiyhz%jeD$+<=4XKJT*UE5h8_aaw3|Bb~7f|L07k2`a`NXaWKWApEcqHw95v>fk zeV%O^3GRXT&>HX&C-@RLn5GR4L6(~>!?;FO3$!y5=GsiT?omwCO}RNbuGZ+V4J`3- z4a{8>(;X(b58}xwp}Du6hq)gJ8U^`+S?)cfs)9XfY{i~xwq)vigbo0RM`(Ff%aOjk zY|ODLdLaZ!*~ZL@>(Q!UwZL4PDcAZKEDy}pJYs9eOstg!htTZd8H_7EAkH3#Ab1~$ zCo@AHqK|MoDWg5hB;`P}fqqUdZ4rpdL^G}*E%XNd2zN5{h%EzxFNPk`t`G5O4Mb?` zMG@n+ByTk1>n3QQ9Z(bd+n^QNX(Cn-Vr<1bn#m<|bWU$YIc%m?%y_JrPCb;d+$=am z<~lA---h<67}7HTfgnBd(V3WaiQ+qICq~ef4;M zI4spaHS%_ITqzafTHN;s2OPxndT^*o504R_5n@~-u5q-pPF0M#zHwbZtdt?f14?37 zfZGtR4S<;C$7Q||MjK5U`zAx-04mOaJPh;o=qb_hs3%7nw#CCnxm z649xq$JL&q{S?f#{{pr2wMRK)rsW^cJX@{Jj)pp(rf))$hjz>`m)Xoh^3dK)%lULC z98B~_xP74(=S?QS6#;HT7YA!ks6IxvB8ZRIKcPp=@?y=Wo32P+Ou2c_&`BE1wIi

LiL?`F5M@n)6@Mv|gtqAn6F<$kUHrT_% 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%0A#yg{pvcZ7V9k_EHMD+supbz;BcL4kx4hdg zALK;Z;V`wscC0b^U;B4w9Xv(!_P`uJ##K9 zM)F6V)dsw^GjqhYz<8w#r?hzm_(5ZQ4oV;IV0RJD)@wXi`TTd@vYpDpdpSY}S=Zx3O zF|L?iw(3|%SFMOvH?vi7*E-s6V{Y;hZB<+ArV|zB(o%M{iQtkp*I6Q^1=qd^5@WU= zo439yc$cl1>)B8h2$6)jN)}viWmmC?mJ50`Hn@sK5tCJ{51HuQ1Ff*Dr^JiNcl#2ycDg}6<@#-(hg%{%Nx+}($w`ptC zA@#k~Y+YFTBp7f~6O+q~RN~IDNRDM*)|__4vtqa+tdFlU91gO_gL;*mrLC*7J}0A( z1M^E>MxUQpfhrvS@rSeC?u~=PS!rfmv)77Orw^FgzSW?TFY8{vCB5yhr<>lG(&2|2 z=SDTHebeg?Ej;(v%$SWod^^9+!BX$1U6-fNzwy&*mmeRdJH z^Yo3+&Uo_fRbR(#-KAVzw#s)pchW=ezt;D`*3Wj^)9|e>g;#z|nb3C1>X~o1Nbo&a zcl5v}Qmrvh=Khhm_FpxYe39IKN}~tfubQ*}_|302k9zOxlWkYjt(NuC?I*uq@!F!h zPW0LpUvR3yoZ*XKyW_3jR`f5ed-hx9nfLpg{_4!2opnpPY|I(bSz5Gy>!pdu+s=N! z`;YZzg{Y?x}zEzLzij`1{gYYezkmwrup88#3m8@odGM z!CTJ$KK!*#S2tITEuQwkYu27skM+y^Zl@#V(cRa-y+hjZ=p8ekv=vDozTc~P^wQQ} zZL6QSuh8>e+=%aQs@Pq0OXFKld|!Lbd#xTAaI)x#EBnsmUu#u=xo*d9XR;r-edYBh z6}e(l?UEiNM<2X9@7+i4Ir4DzTDK^>wjb@>ZGCHH&_5U6ej{r7#$Rw9u}>CGLUeBu zEVbuXxbklNBDwK5zkd{yA9H>7xJ!TDJA2-Yy$|g8Va;Ocy7Xlq4ccyPoApThw0dLe z-@g9ns^W)Yc0Bh+an0|3^1of@v8PU#&bK!#Svt7cEA=XBH~IeT{FXPY`kD zz0aEcbt-vS+dA@t#hWY#PlqYS%AWJ@fJCH&+$h`PS&w)^o-0J`?lLp9QI3+*I>!qHkxn<+86bpBhub?Fk2lYZDk!TF1W9W=K2#<&gbV%J{idR$(km6`VXBq(G7`2nMtWvR@#|$DhqbfW35E1J@kU3 z)!$63cqhHXp5$l@^q9UDDPkNq=_}f)BOammpfT6+6@9rAF6a`MNZG;KL6CBoFMSy+ z?X;&)yWb9{REERtl=_smu`uOOU{l^=ww<%=Yo>N=HRC$>P6>9VNnZSBT<>1mMiDO4 z@n$r?qX`W;%)(m%C>l)VFms z>&ANb(M^gZ$M-;sTZ5f7V(~CU#=w$1X56*KDP_Nz{hV*Ag8MQFHwt!h_0PH7Nb81% zM5LoxH@EBn6OsN#DmH{@<*K)@2Ln>%FhqB>Go9RxG|^lpV%6kwrkRqb8SwpIs3&n>)_XCT`Fw(Ywr3tmTqZO zyL@1eBqgzQ-d67e)#jx?f6ImX7v?W~HzTG`*LuZKKiqfKH|5NzoZMBfE-OpF|JK)r zRn*(QgMGOsE_z2`ZZgQG)n;Zu?@u+(`Vx6#uGM zwa#`(%T&OArlRxbOJ3ZN1Y4%E+v;?EHBvHRDj9i}IR5GGNc_XGVnyBz_ax|Arsxi^ z{!2Y)*IN*&|6!{C_E8}I!4>n+_z!LtiGSGY|15F*l{S(1|G$j?mF!6T!xewqd2P(8 zefpcc87@I&esJ0bBTA*&VuxEDlM@x@3Sf43Ced1=jTzCLL~!y9BX+bG436gElzyz_ zJVe$Z&;$|XYI73o^fU3I7%mU!afP{ofj#?9(jPGMrTF`*;6xSX+Dy65!*s?1a}~tZ z{2s}C*o4?Ehd6tto}@noqestQQ^YuW<%j81Ip*4afmYZV9imkMtW#ImN9Y{_ zm>Z>l`5tb)$m=;H?afHN2t&OfWi{A%X%geMZRWUw=IgX}iCw%R`uol5LfO&FHwGF+ z%#}^KzGJi{qPnJbubBH~LwDI~={a?nS*B!X$ce8Ez9;xL3fxM7aU0r`M`uN~8Fb?L zR*2C16iAxw5Qz(FQpEU)a{fSX1HoK5#&|iAXca=7U3Mesi_CEwgZE8_Z(E#RLAaLl z43G;2&21UyBIh{W`$tsJPCHG7zDWo&7%m&?Yn+VkbkS1MMI@4PndyS!3A#*;xi)my zhq13dbgPV3Z!uS^OB|2Tf}k00n*f&u>B2kqLPm(O7yeUpF`VR%QGpS|`o=2GpK04p z^1a#ISNk?|+$O@~;Nl#t{fZMV8?tv7VbAR7o*1(z%6aCvGS(cojf0-iWkXU5<4qSI ze}V5aJ6fpJY9A~GWs{jo&aX@26k|Tr|`|V~dD(9gJ^Q0lfSfxPqWj<1F5Wh91Ig0`EbhHH{#hAyO2a`FIWMqtkN6Wt8(5eRGSs-oNOxgSj%& z)pE@CTZvX9h_ex+xb}V;7wt}Ar@kmPSV9Cu8Qg{4pM1!h{(Ri<1QLXTkW zP&Sz%#=bfjeFbg9)as2s; z5sWKCA>NmndnW18$Vtlu2Zt;7+&x87?=iK%cpTTq;S#zGD(>FFgB}_Ah$Ug_w3+jh zQc{~lTdJci=&fU%J#%uKr@d#Xi<)QB6~X_|YK;ERPWI|jiWtAkT#T0rx{+4vk1_8mgcz%MSrs%&)mlyV2590@6kJt>Z)97X*(kG|wPMQk z$J4jx0#s6Q`C8q>Bi_KhwHUFv;OxofV1FeLSAzF}vm0ZBI7aLYLf3{#8aLEDrqh%M zKs+(ndjmEFc;zmbp1oI?*iTFV@h{ccSE8x`T%Ttp3F3PHYiwb!zY2^nu;p6YSR^p& zz=+%#miYt_M+Mymtkss)I&bl9!5XgjRvriOg}U^L%Xl_|c-GAvxAlNHJ1)TKmEI7) z!1PrK-XG%Z`Xt6}L*N_%?aLF-#+c4TB+{M^u`&T#VORGFJ{ek}&m2Wep6o>0Zep%& z1+>EU>M$;^hE{0nOj4ePDcN2fNr`Z+<)O8JAmhyDGd$Jl95u0$Z^q3_V)DZ5E8uuk z31?vRxFW)xa4lJ1Z)5>(YX@gw==<_@TnhKVS%t&F8jlgVm>v7WaZ{}1uSqXsAlxl* z?4O(hxx`8`9J{kKP#9NCzh&XIcELSZ^hdOE;5dH<^cW!~wXYVft}AjjoFSnzO9bf; z5!w=xT8a?ky6D2+H6wq7JIaikqtIDmVsRXt&0$*tj4R^>cmc%OFLDt5We`8j^d~T$ z!rW=Y_Qx=8TMN^(cfSz*%`jrL?@5q@Fs0tI?T9(9oPao8hYR$Ch-V1b-U_roiV=mm zhlj3(lQhY2?x=5!?#Wcl=8l|pSjs8&1X_(C&VF5oc-aEt?7N@%+R+?Wy76YHNXnjO zxo|PLupzG2gJRd8i5A*-phcN^RuE$RM7Zs=kBwF2@lb`SCHc_4zW%dwhKzmFIYS>~ z-?Ck^kNfz6aT@V#KeVr}|MCHdv$I4bK4^cA7C(;v=QPVD65~HYjN>QOhHp37ld)&O?v%9xIoiN3e~PDMmZge_{()B7q%!TCOY8=_bt zt}i`XiU3EO_B8wY^h!NA6G=ySBq9hgjz|uh%M5cXatnxaqJVbN7~Ar&(H{b}^v|=r z8{(Y4iyO{rvOQap?_2@S>{nq&WH@~a+Et>pC(~hXZ-Uv}t*1_P@P?HqLNC~{2J!L; z#5qqTvwKAUZjmp-^z3yhME`!XIU;{uIxB^_ir0+msz>J`33mcQ6)8YlUczbS74_*i`WOuDQQZoLz|My>qb$E5@tc)6OPiVU?-Vt-gyK&Km z2R_L-(=s*Rarw=0b;~E6%Rav6to+^#&w}(-1K<5MZP5^Pp;6vbN%L?1?d2X@N@Krz zuif(TwSMUp{ppN9KY984!O|DM$N%g09S`2p?4G~fzn@Op+vCvIHK#XUSN6iL)-?yL z+uo(^M|Zz7;k%!X_P&yEV5yw)b^fU#UoTIs-?T=;`iXBY%fIW@*DrhL*ya!UdtdSE z2k-VL*SY(iuFKGr;J(&x#Lqn3YjU%#XSaVp$NJE%Cyw9xezoTwUAA!KgE@EZ>v#E| ztULGMK-kv9$tZSufE34JvxzNFeb|&K=xS!IDbYW~N(`Ke(Bn3Q8$aab^wX}x_ zHsKgCR*@P&kL5<@9%0;A%h~{XBo8;yFn=@mjat9NUZpnfhoBX#o3qBa{+}pCYH2qWS3twg>4ZO7f``>HF z{HxZl?{w|e@tKYjbK49UdGE-QvcO^n`tT$@%mzNTK_xi4@J@@b9#_`F4~?<$A?fSE`03NzQ27|wf;_cGVJ&43 z)MB3}f~UcW9=0wJUzjPR#3a}~$G8oB=u68h`_WONUuurq&{gN!b3-raBq^`3wFFv5 zOGA#T;EVin5hzyz62h9q1{`Oa;MpJo3$}*JqWiHT49Gm7?;hD z3^kq-e7O-WvpGs1Q3W0O(CPqvg_4x%a8i!#3@*a4LAV+?M?B;6*iISrYve zICV!i!ed0XLuGwRxwF~SUf%V;1>-}sdYEx@u5X66TH!y!y&rl+?{p%*4u=SR1CcZc z(W1m|U%|L-iJ5)p4YWNbR?t0gnpP3B6^3Y4K%A|e1oxZSD!74miU>D_nY3f31~4w8 z$wG*S<%-qc_GBv0TJ=SYmVC(TwllKWiUMl zM;~j{o*t&$O9UxT!<3VQ6Hz2SiEyHa6Ilh~Y|n}0xwF}Ho9{+gqvYOZ+_D>Cjlf*3 zEcAZa+-6$VOla3O0BW%dK_muq&9w3|>3{-rmE~q!S954rF4lS++Uzm=>|W{O))vjM6^ob1Q0vHLvUt- zh=U&yq)#-P#$kPxO}XVxx@i#mWkaJitug@d6wjvC*Q$NnZqU_Fyj2 zUkGt_97u3xmPTI+wk4*s0JktD>VvlQeMokefPDfg(;_EqcT)qhL)4?07L9Ed= zlEx)ob_*YSECaCJ(lhD@J}d z`?Wy>zdrxRk?ZQc{N3)ml{0VdedP7)KX)zOH|vHkl3(ao{=jGJ>aF^|?TE31@7_Oa z=aF9XfBJc<^UT(2U+x~WcXFG5_T;zPH?nl?ThmHbeY0unCquJyS6uBoW5}nCPN=yC?~SJaqCx&q zJK8U8LH`@wH67eLO)BpS5P$Cd6xP0JlOpjCM~9EZe*=g=|2tuQ$IpnwKWy>OsHW}E z;?{ph-_I>_r2PrQP!!jH3;K$!xB_$I7FvZ`t04}7k3pKcWTnJA??_T`# zq4Eiw8)a_Al;S1A^op2P%3LF2Iw*4^WJ;2Wbs-EyeO%dwBLpK7AbDw-ybDMba_?t>zxl`@Y(CNG|2NyX=%|(cLRGdK#1u>1MU!5K4_9?w8FD}$G7h|8tr1o8Yk*6+NDi zr^#pXBIu@?QcXdeawszaGI`cjO(9d&OoEy`Kl6gtWyI7L9N4XRq+}G4QUT3JJ;>zc zgW7ZnnN(9oOwBuXn+)-eQR3y(L%l<{T$$HfZ;+{Ez>Q;cGZeOFL)$ZqYqYg9-JXWI zvMINqGoI1LeiL#?CjnVNMT zGmkQJA(Q8)8c~MH(=4ExESYY)@doZ7)>72O*IQd*1eQD4KjI}YCH=elb54n zsyPcXd762YIS(>0EMk^X<_ZzBoHEynn10G!51G6i6N@GnJ&`wQB9|aSw@*zkjb;IY6_XE zCc2f@Jn!YyI>Y2ySDD>JntrO;SHzTJgYTrlBBqtgY2ySDEN5Ip%ryQO!LfW*KFod#E%`o^@4I$W%2CK}}xX%c=Ep z5z|kZCn1yPr>ZGrs+#CHnwEE-pHf_)CAOV`2irJLjHK?Q@rszPoKm!mvtJqt2<)>S`+Oui=1dO^^-(heRcr1w#h zQEPj%xGY>L(eyY}mOx5~0sL3liKeavq zGI`cjKPN*bPg9By_Q+?5m{u;6XI=G^(d02z>*#>6d0lf*>kA>1r>XiWWb!q6QF2o2 z=y0;RpDr$w=clS!EYfsSO?0SPv(D30tqYl|<`$^Q%X?1Hx{R3G>Nq_tL|QyXgXb63 zaFvLx<rbs#RbFA&!){mTj2*ddY9DjQzh(9`i#fyJx zw@CcMasGuA&&pM4@BZ0uJ|jnw5wQ3q=CUB?D)yBdCaZ?adf9w zfncs;&h7bJaAO+L-2yE#>(S^7!&w%di`uZ>Q4eMbqM7bES^F>y)l_&ZWkVJj&Ve^^q1@fB>Ztih6U zm9tF938bQB8p<@*lq*G&L z%9YA8^`-BoW!gYorUh*yWg50JZE~$8<;q~0`qIy#t%UQMnXOr-zMkY!P1iLuyRl5Y zp9NI2&wt9)`{|*YgGHKN1Ez`Qa8^^#EDmbgr?Pj!1@cb%!v6u{LTSvOcQr2|Ok)q_ zX+|EpW{9l$g1J;?X&Tx$pKva12r=H<@4Jg$JxI87;fEdA3r#WZn#cO1&r=yK$q=T# z#!=5*%UDf4vplFNqZ{JrtPs8mQ!7c=8dgK^m!JBzR>V|u5W+O}%N4>jwk~fn%)u7c zFTFJhodqXlP{K0x)~u9S#xnJq4$3?vVyf0dm?qXkm?qYbu-5gO&Y+)4xmjIy4uEq) zu9MfQ>N?Fb^`5$d_T>u0@;i5}8m4rJTWHt2GJTwO#S*AV*-fL!3zg!`jCf0kh*7eL{ zYP}E3H1RWpX{;&tH;mu?B5OWc28d};i$<~`ecq@wR|wNsQ=VYx*Hn?U za_UzR%hX%*(C#%KvWZM^!dJ?vJvWYDzeVICFNg<}_iC$h7DXIUz zO3L_|a$R$ox_oTu>ouM97Lq+IQ(sS9lzD(SQBDWKLun8tp|3GBx%0)F99uWU6!TnK?PGJ17S&<{Dy zPy-=QLmv+{FCk20Yc7XK(@W!%&NB6y#gy5CW$OJ@HA9#tn(aiIJ{rG{hVjd0HT2fX zXb$?aOnnZhHCG7JSW|Wz`ZZ8wt(@j4em;@499jk?h8nwB4ZRbiSwLfcl4a^OJv0Z1X)ucsqM^@$YOUg$t@#bDA;kQ7^wPXtyk_PlmZ^_IG1W}2 z&R92L+F7PPDn6>|V3~T&GFk?i)s4ykA?8t0t+im8#@1X}EK{F@a_U!mL%$GW?ibZ? zbz_-&zx*^_{jZrhkY(y~AkiB^hOkV%bt`4&uuK!p5T=P{o=DR{t>?2$y{0qBlqVRL zNdc>&&w*+!glTNeHC?3XqJAN!K|4}-tr{*5%hdbjrq<>fS(6tUA+BYtx;{QRv^18p zOk+P>Axsm^)gsM2YJD@y)N2;dC~P&%>vmQ{p92rIwp+wh{R&|k`{fE@npi);TGwlO zX6w0-gAk@Z2h=ZD2-8?oPB+X!ChM2pnnZ6wX~Q!0)~uA7%`#0i zLzpI-Jw=)hYTeB;^_ot~?9Vdweo{?&pke%muo@=ThOsbXe3ogV8NxKtM4uToZ^a6z_2n#6ujw&h>iwje za)oUruVRkD)b$z-LPz1s9F^K$dB2 z%@xA@Z#3OB2RVj0KnTo%-Y=@*8pSg8e&x`-UOO|7)zn+hqneXhrrvr1&FeJ7yv|@X z^wvDo+AI-M^(%yF?3XKqX>47dXOsgQKuV;d;1^NIDhWc2_jY;SR#R`ioN89E zOueQ*$W$(B@hg#LfI479h;bdrL8op5e`GHy;=L$?QkvagLQ__%$JT2a5|KFc!w%*bvh=!e#7JW@lCPo;!khlo8Wl z#Ch!+=u3zO8Vy)K^tp4=SUXv!-eVVKc4V1)P4_i3RqG*|Cf0ki*7eLBYCVK$?5FHD zjNbs(nqDI>XiY{;S_UN&tYJ2U7}p!;-N7AtfnDAMS$ihA3t^gghQ4h`Jqzi_jTKod zps~!qX68hesrSo6H4CqqS;R8+QSs7Jm}i*R#jJ+juVU&~2-Db_E9853CYq~R>v~Ne zwZ4I6>NU$~UN;)%bqlLuVl9MeVr{FTwUDpW>8+L1yzOWG(p&RW<_VT*q8Y+8)|AoL z*!a(Z+(`T0miB}!!TV280(}~cq&OwC$2RbrCJm4Z-|M>n>79pihdmn~6C*h$k<=$F z+MYD-Xu7?i$BGX}WeN8!p#C-M~n7FN-udxMTEVsRUWWA{Y05dHJmq zq%=1~3re%R-<6t~k& zxGj^_{luA;=^(v=1=>B22hah*!03)3i=hth{v$lihd#GUbgFxy4(#7o zTOBJsgIM?{as4TNqE!s4e{uH?9`wk_M=S|ZG1Ze&?5Rzh3i7h%ni%jeGS@oB*)t~> zoTiM&rzuf}nx|!2qUr6E#F+LE$q;fxtL8APc7zloGX7b)4UogyDh373XGxekZDvx+ z{M04^H=3utXQ^9NrCFsjNJyy@+L9ToxuE`E|Ixuvd}K6u8k8Ia?S;y!ZH8oVkRoSt z27@mb$4W0C%lKCq#Vtf6w0bqZf}*e}Dq4Cl3Qc9BawUJ3w;RUR>X=)3JZjhjm-oG1 z_}To+FMrZ+g>%D07b^2UzVYcBg1mp@KiJ(we;rjBI-2s-G^s{Q2&M^_wp%U-I+S2d*|ba3tq?QU!&s1FWr1o_QWpVP3rW?h2JDQzjBg#hFsOM2kV)f94CE?OyD2CG^}iC zydNc(s-+S2@0Ld92W<5l{=!qc##gIo`C^BUkN(yC$0sHCyk0pUf7{~+xz-=g_iXTS z?80S@PPd+TtVw0phq5<5;(5H+eScTmdb-O4&3EOs$hXARN&e>kXWmz8w*7F&6uGJE z(kDYdnlOIUiybE4HovOYh1RX|Mv;89O4|q#df5q1Q@tWiYKVNnzcOx<=6fRAf*g)R z86rl`Kq*)y(hl=(n80bQ!?kl?CDJ%BW0IV!A?#d=T$BhL<2~*!bl*NYM~(xDjU>-y zH@<7HetAW8W{TxvOp7`XR|N3DzXk5hsI32?DHgV(V(%pBKWZocR~(=xRb~T-KN>Fb z;yv&*dR4_IF-t|=M$~xeolB_Z5Bl-(7|C@tP)CE0w?9enta#m?J~v06l`u_5 o$~|fb;$Q6kdub&8;d)l0Q2e!bD17D13q&R3bH8=|e{aeBe|Pt>$p8QV literal 0 HcmV?d00001 diff --git a/wifite/model/handshake.py b/wifite/model/handshake.py index e017032..656be89 100755 --- a/wifite/model/handshake.py +++ b/wifite/model/handshake.py @@ -4,6 +4,7 @@ from ..util.process import Process from ..util.color import Color from ..tools.tshark import Tshark +from ..tools.pyrit import Pyrit import re, os @@ -67,9 +68,6 @@ class Handshake(object): return False - def tshark_bssid_essid_pairs(self): - '''Returns list of tuples: (bssid,essid) found in capfile''' - def tshark_handshakes(self): ''' Returns True if tshark identifies a handshake, False otherwise ''' tshark_bssids = Tshark.bssids_with_handshakes(self.capfile, bssid=self.bssid) @@ -98,54 +96,9 @@ class Handshake(object): return [] - def pyrit_command(self): - return [ - 'pyrit', - '-r', self.capfile, - 'analyze' - ] - def pyrit_handshakes(self): - ''' Returns True if pyrit identifies a handshake, False otherwise ''' - if not Process.exists('pyrit'): - return [] - - bssid_essid_pairs = set() - hit_target = False - current_bssid = self.bssid - current_essid = self.essid - proc = Process(self.pyrit_command(), devnull=False) - for line in proc.stdout().split('\n'): - mac_regex = ('[a-zA-Z0-9]{2}:' * 6)[:-1] - match = re.search("^#\d+: AccessPoint (%s) \('(.*)'\):$" - % (mac_regex), line) - if match: - # We found a BSSID and ESSID - (bssid, essid) = match.groups() - - # Compare to what we're searching for - if self.bssid and self.bssid.lower() == bssid.lower(): - current_essid = essid - hit_target = True - continue - - elif self.essid and self.essid == essid: - current_bssid = bssid - hit_target = True - continue - - elif not self.bssid and not self.essid: - # We don't know either - current_bssid = bssid - current_essid = essid - hit_target = True - else: - hit_Target = False # This AccessPoint is not what we're looking for - else: - # Line does not contain AccessPoint - if hit_target and ', good' in line: - bssid_essid_pairs.add( (current_bssid, current_essid) ) - return [x for x in bssid_essid_pairs] + ''' Returns list of BSSID,ESSID tuples if pyrit identifies a handshake''' + return Pyrit.bssid_essid_with_handshakes(self.capfile, bssid=self.bssid, essid=self.essid) def aircrack_handshakes(self): diff --git a/wifite/tools/pyrit.py b/wifite/tools/pyrit.py new file mode 100644 index 0000000..740da5e --- /dev/null +++ b/wifite/tools/pyrit.py @@ -0,0 +1,59 @@ +#!/usr/bin/python2.7 +# -*- coding: utf-8 -*- + +from ..util.process import Process +import re + +class Pyrit(object): + ''' Wrapper for Pyrit program. ''' + + def __init__(self): + pass + + @staticmethod + def exists(): + return Process.exists('pyrit') + + @staticmethod + def bssid_essid_with_handshakes(capfile, bssid=None, essid=None): + if not Pyrit.exists(): + return [] + + command = [ + 'pyrit', + '-r', capfile, + 'analyze' + ] + pyrit = Process(command, devnull=False) + + current_bssid = current_essid = None + bssid_essid_pairs = set() + + ''' + #1: AccessPoint 18:a6:f7:31:d2:06 ('TP-LINK_D206'): + #1: Station 08:66:98:b2:ab:28, 1 handshake(s): + #1: HMAC_SHA1_AES, good, spread 1 + #2: Station ac:63:be:3a:a2:f4 + ''' + + for line in pyrit.stdout().split('\n'): + mac_regex = ('[a-zA-Z0-9]{2}:' * 6)[:-1] + match = re.search("^#\d+: AccessPoint (%s) \('(.*)'\):$" % (mac_regex), line) + if match: + # We found a new BSSID and ESSID + (current_bssid, current_essid) = match.groups() + + if bssid is not None and bssid.lower() != current_bssid: + current_bssid = None + current_essid = None + elif essid is not None and essid != current_essid: + current_bssid = None + current_essid = None + + elif current_bssid is not None and current_essid is not None: + # We hit an AP that we care about. + # Line does not contain AccessPoint, see if it's "good" + if ', good' in line: + bssid_essid_pairs.add( (current_bssid, current_essid) ) + + return list(bssid_essid_pairs)