From 4f8d8c04f0424f64d7b1ac76b5bae6f79d737b9c Mon Sep 17 00:00:00 2001 From: d3vilbug Date: Thu, 1 Nov 2018 20:37:04 +0500 Subject: [PATCH] v3.0 --- build/built-jar.properties | 4 +- build/classes/burp/BurpExtender.class | Bin 7116 -> 7940 bytes build/classes/burp/MainPanel$1.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$10.class | Bin 0 -> 730 bytes build/classes/burp/MainPanel$2.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$3.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$4.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$5.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$6.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$7.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$8.class | Bin 728 -> 728 bytes build/classes/burp/MainPanel$9.class | Bin 0 -> 728 bytes build/classes/burp/MainPanel.class | Bin 14819 -> 15211 bytes dist/AES_Killer.jar | Bin 57326 -> 60242 bytes nbproject/private/private.xml | 5 +- src/burp/BurpExtender.java | 164 ++++++++++-------- src/burp/MainPanel.form | 166 ++++++++++++------- src/burp/MainPanel.java | 228 +++++++++++++++----------- 18 files changed, 333 insertions(+), 234 deletions(-) create mode 100644 build/classes/burp/MainPanel$10.class create mode 100644 build/classes/burp/MainPanel$9.class diff --git a/build/built-jar.properties b/build/built-jar.properties index 20eeb02..e7e7811 100644 --- a/build/built-jar.properties +++ b/build/built-jar.properties @@ -1,4 +1,4 @@ -#Mon, 01 Oct 2018 17:26:17 +0500 +#Thu, 01 Nov 2018 20:30:25 +0500 -C\:\\Users\\abdul.wahab\\Documents\\Git\ Projects\\AES\ Killer= +D\:\\Backup\\Git\ Projects\\AES-Killer= diff --git a/build/classes/burp/BurpExtender.class b/build/classes/burp/BurpExtender.class index e32f1e54079f29bcb106a4cd20178c3360f12ac4..14bc7279bbc49cebd3f1709a17dd06a166d0ffb3 100644 GIT binary patch literal 7940 zcmbtZ33yc3b^ebunm5Y>2?+$lDvW_aLKeo37lAQIY_gHS2yj?pGtxYyu}3q*%m^c= ztLrpz;>2y^CdF|~oH%t-I|*(;Ad?uHG*0a{acpO4+@vv0?AFcFHcdCz4f)S~?~Mj& zO!FllA9p?XZ1?=R(;cF4h!1KEDg08$6!q=7N8@lpM zZN8<=-$w9lykz0;BKQuz8^Hqny{>#Of|qelr~jaed_O|cA6R%r`&YI3N2UL#2wuZK zE7cD}_)!Qy*5OY=_?IaD75^5+Px0?j{0#pQ#ed?zboAd5{10ANs{hsL8#?;G5Pq(c z^HG5aM^eRQsn#Z-O^r4|Z7gj<+JvctL?}U`WG=QPQzF=mC)vo7$vt+_-#F(g=IB$Y@CIj6s^ z>(DmcbSSfza~`k?PXDd9J0q&Sx}-$k>-6WH;*HLTip@I*cW&PzusJAkpjY!wVO!qk zD2OJV{_Rd7m(3LDZk&E?sbSDw8U%5md*Q?Ggk!vq?&=-IB^UJ;OtNPM+79Hg}!nb?!>! zQ#$t+1I576|8wGf28`FsaTGv}7FuD^t<4L9+gSUmuEQW49Z!z0}sBnEiBi{g8{8|ljM z%G3lWSx&M_@1#1R;F>a=OET<6j>md)v6$QL92|BE zML)plB#Urx>AX1V@@RBX_XnK>vju%!=U&lpF_muH!qD;#D?jRHutjDCm)Uers4vOm z79xQMt)RIb@e?PV@lCCtsGmIX^OFNC*CfItlQArbYm)=cJelE#eN$JZ4PRa z*QS8|mMpYosl;s*F>K?IHh18#jS+47&~M2yTbiZCMiLa(V6ys!$<>zS(n^_fnT-P& zu%%5_2&S5(UdpYyf4PkmZnI^jTtUo^YuD73DHNIToun;S$_g8|BW)v#oQ)x5EP0D9 zSIO19i-}K)CD+(;t*o}?I$2}O^|IEIb+&X!r;1x)%X-;h;|T8e6*tdO357QP828)w z02|pTn=R?G(;)cJhv{Q~-Aq@ud)H ziZr#hu4&TqnztemTZ(GWupDB{+IT14Wy>8ZdgU+A*~L;*glKWmbe-~NN^H9bk1|wH zIUkPGOfZ!P`UTOjweL2kpE$2KWET_?OnB}hlPROX9h>B(S;EQaTkjoH(c_EL#(nIi zd{!#%@i$3>eAe9k3J4}l-MzB>MT{63rJPmLq&zRtdxsL~VP`Azbz^)_d4l(!B4$yS zc}JxRiiv>lpjRmgX7densVh`bVN&*bh14wnu_W5J4i|I7+{rtMA!gRu-pey_XOHHo zx`I@EPnHX; zh8R3nX=Hb07*3t(M4{jiMRR@snfrCmUg{CkhatMUW2C5*f%r0gCaq+4V=9y28y$@A z?J!HTCJOf%Fm@cH!H%q7LNw~3vO=X)*x7wlF>uI?sDa z-S>T7DaI>6k!Cbj1^}I!p#MkibV_gi3P1EJG4g>_hG{Z)(dLyU^%n$zSC}Y8NkWj5 zoq1k*ollx^ift@d$jUa3^ya1l@Gm>mpUo8c-NNXZ^QKPJdsakuJH^2)zXYPi?3U~u z`f;US4_ZW*!d;`Vkh;?i4_1V_spT5WLc*DB3d4N`^BKpAHr`e78UozsXHk%Mm`Ic1 z1*msZ^ePj2eC+eZf_`UAAo8Pyde;siT}Icqi3vr;oX%Qn-q%rreKP1Cd3G(GD~)3ekxJ*!RAv*2VOr3Nfs+5QG+ z??M$vKzs8^NOOJF2~?Xl&@3lVqfJm7tGW6VLMIUR`iL$@wXvVz=_>pt+h#=APNUTg z98Kr1JWc%VXCY?e68^xl2upD(+OQZ`VhMhWl(s7wzm4DFOz^w7%hT#1)Q~68)7)|b zQ<_`GFja5@wauqdx0|zR#L`LBpFl(Naqb^S^%$mCf!i~7(~!m!m}xe~FpI0l(NG^7 z#q4oSFF}ahTPS5YYSBs^FXO)zXvgJPkCo`g6-L8GR|`)=>ZA2Kbrk#_?)G$TGjq^c z#}PP2wyraRTn4T#Gqk2;=sWQH6%NmwczAWi!z>iN!!J?)0EKL7>7nd70XB2_f8HqO zpT>gSr_iL!t)o~tic3bZ=p-)fSw4!zM~vGdW)yDb{*s>7V?8a$jK-aGz*1D33!M*( z?AOtv4%DNQ4qMOB2DTg7ZZhg!X|AdR_b~XXxmtyH<2@Wvt&-a|;a={lKQ`gL49Y6J zkK;M0dIKF6?mN$|Y72kBp@lz$SokBZupnovG5S13D8tT{ZZ$|9?c2$rYe#J}EsJ++ zyR2KSSISe+c?+#SiRInPk9B)CUXQgU8Ypp1V?~b5~OKmb5ZOthcz|w78AY1N zImp!y;!lh*%_WtZ%T$V>`V9o-b^dfpo%q%GOK3)&T>UPpS%#WrsacLXWT{!6niYR# z%^tvqT+IUW$u~+&PoHx{rYs-B<-(+N9JQ@uSXqVkKrArE-_g-tqcO)t)~<}T_MlF6 z?=6B+Tt(!yTQQ3VYesSP5uDYnYjo?{`gXJOXLQiIEIbY zXb-o>!eiJ}g-6lc9wzgK)7ZTGB)XL5hWZ=X#KNQ4Qs2$dD0-Mj9~BkL#l?Z6RJ4Lu zCR<+YVg^0z!o)CfaU8?)3h&kvE-SY!-4Tt7reU-AQKZm8d>rZPw@ecC6yNB<{!+c2|$2-XB z9(5F=r>->G_^K;S*5XCOxkhp5 z=M|0~$ES!=UHddX!@JOwn?d+IT^nMuV^d0Vng%q@Db1V0dr|vDcz2HC=K8m~4l;G3@Mp~j8I^t^bQdEYyypOu zP#sPo#xxbjlURk*tn)v|I{ouR`5FF*ca}){0;BPZqn3Lr8$QjD^=;mFM)iqSq;=jk$oQKD}GLeFCh v0*XW3a)J3-7nmj539xk0yrBFPWuBs>DvZf0_VpaSOux1>v%SWC6T-g$HnFmR literal 7116 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 OL)pf}_jC4xi2W~KrL`&m diff --git a/build/classes/burp/MainPanel$1.class b/build/classes/burp/MainPanel$1.class index e6a44779fd3b9260fd91ffc1184f49c315b839d1..ebc55154ce9cc596c81b524bccff03f50b9bbecf 100644 GIT binary patch delta 23 ecmcb?dV_U?2NPq(WKSk9)+z=LhU&>Pm>d9E+Xlq| delta 23 ecmcb?dV_U?2NPrNWKSk9)_evIhJwj6m>d9DoCc%- diff --git a/build/classes/burp/MainPanel$10.class b/build/classes/burp/MainPanel$10.class new file mode 100644 index 0000000000000000000000000000000000000000..787220ae74ff78b6a22e9640ecfe58b112ff52bf GIT binary patch literal 730 zcmaJVTW z=dG?lBOZ*ivuIapvnP#8H+l9-8(nM(G}~7X*ZTsso*gQIdaR9lJ01;G_CXF(Miye5 z$h0pr?fhx5=7bemUzThF^BuFIs**6gY5$Yvuo6j*7;r*a}Ad0s?n zqD&EOmnl2W-gIiJYElR+U6&>hytm^lQLnX=Id@U(Glxyu9h0Os*XDRv6(@G+VKu~K zJPF}pHiYl2HM9igFSm-K*}qa>D$Q~9Zg8p+idp`zR+hQ`S=m>d9Fi3ZmI delta 23 ecmcb?dV_U?2NPq>WKSk9);b0bhWg1fm>d9FPX^Hd diff --git a/build/classes/burp/MainPanel$3.class b/build/classes/burp/MainPanel$3.class index 10a3f88d9bd746d01f06e8f89a1f63703696fd30..026a2455d5a8680284f5117ce4e85a78191c81dd 100644 GIT binary patch delta 23 ecmcb?dV_U?2NPr0WKSk9)*c29hTh3Dm>d9Gd9G$OiZT diff --git a/build/classes/burp/MainPanel$4.class b/build/classes/burp/MainPanel$4.class index cf2c6b65d454fc89e7634c5a4ed451052fe814ba..280bc947be5e35c0d41ee44fce9ae94bf9881c9d 100644 GIT binary patch delta 23 fcmcb?dV_U?2NUDu$(~GJtWy~{7^Y30!Q=n{T delta 23 fcmcb?dV_U?2NUCw$(~GJtj8EQ7>-Y#!Q=n{Vs{6r diff --git a/build/classes/burp/MainPanel$6.class b/build/classes/burp/MainPanel$6.class index 0b09a477c22674a735f57a7e5a220d339067b407..1f309774ae99c0d3fe4ffd54576964dcded57668 100644 GIT binary patch delta 23 fcmcb?dV_U?2NUCk$(~GJtd|%#7%oqq!Q=n{W77xC delta 23 fcmcb?dV_U?2NUC&$(~GJtmhaw7|u_g!Q=n{V_yfs diff --git a/build/classes/burp/MainPanel$7.class b/build/classes/burp/MainPanel$7.class index eb914cf0ee5a00d46578da129d648864864b6b0b..cc5c6d6ceaa4ebf89a0eb8e940737114f196b971 100644 GIT binary patch delta 25 hcmcb?dV_U?I};Pbjme%&o@@-a7&sViPoBZ#003+$2ju_& delta 25 gcmcb?dV_U?I};P5#$-<>Pc}v^1`bB;$upQ709UF7*Z=?k diff --git a/build/classes/burp/MainPanel$8.class b/build/classes/burp/MainPanel$8.class index bc932c6b65631a2fcb8f99f16e5cb7fec7b58cfa..3761a7fe6b027628f8437c9c5510ddedc7abfeb1 100644 GIT binary patch delta 23 ecmcb?dV_U?2NR>&WKSk9Rtp9WM$5@Fm>d97X9fTO delta 23 ecmcb?dV_U?2NR?IWKSk9Rzn63Mx)6ym>d96oCWIu diff --git a/build/classes/burp/MainPanel$9.class b/build/classes/burp/MainPanel$9.class new file mode 100644 index 0000000000000000000000000000000000000000..2ea3b0b587e8a583790d125e94d33e39cea97f08 GIT binary patch literal 728 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 Qy_$-Xv`@`b3l^0854Wz{!~g&Q literal 14819 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 lUpFzmU2&3@ - + + file:/D:/Backup/Git%20Projects/AES-Killer/src/burp/BurpExtender.java + file:/D:/Backup/Git%20Projects/AES-Killer/src/burp/MainPanel.java + diff --git a/src/burp/BurpExtender.java b/src/burp/BurpExtender.java index 1160c93..a3c8f42 100644 --- a/src/burp/BurpExtender.java +++ b/src/burp/BurpExtender.java @@ -60,70 +60,30 @@ public Component getUiComponent() { return this.myPanel; } - @Override - public void processProxyMessage(boolean messageIsRequest, IInterceptedProxyMessage message) { - if (messageIsRequest){ - IHttpRequestResponse messageInfo = message.getMessageInfo(); - IRequestInfo reqInfo = helpers.analyzeRequest(messageInfo); - List headers = reqInfo.getHeaders(); - String request = new String(messageInfo.getRequest()); - String URL = new String(reqInfo.getUrl().toString()); - if (URL.contains(this.reqURL)){ - String messageBody = request.substring(reqInfo.getBodyOffset()); - if ( !this.reqParameter.equals("") && messageBody.startsWith(this.reqParameter)){ - String arr[] = messageBody.split(this.reqParameter); - messageBody = arr[1].substring(0, arr[1].length()-1); - } - messageBody = removeNull(messageBody); - if(this.isOffusicated){messageBody = removeOff(messageBody);} - messageBody = doDecrypt(messageBody); - byte[] updateMessage = helpers.buildHttpMessage(headers, messageBody.getBytes()); - messageInfo.setRequest(updateMessage); - } - - } - else { - - if (this.decResponse != true){ - return; - } - IHttpRequestResponse messageInfo = message.getMessageInfo(); - IRequestInfo reqInfo = helpers.analyzeRequest(messageInfo); - String URL = new String(reqInfo.getUrl().toString()); - if (URL.contains(this.reqURL)){ - IResponseInfo resInfo = helpers.analyzeResponse(messageInfo.getResponse()); - List headers = resInfo.getHeaders(); - String response = new String(messageInfo.getResponse()); - String params = new String(response.substring(resInfo.getBodyOffset())); - try{ - params = doDecrypt(params); - byte[] updateMessage = helpers.buildHttpMessage(headers, params.getBytes()); - messageInfo.setResponse(updateMessage); - } - catch (Exception ex) { - stdout.println( params.length() + ": Exception Here"); - } - } - } - } - - public String doEncrypt(String paramString){ + public String doEncrypt(String paramString, Boolean doOffFlag){ try{ + String temp_params = paramString; cipher.init(1, sec_key ,iv_param); - paramString = new String (Base64.getEncoder().encodeToString(cipher.doFinal(paramString.getBytes()))); - return paramString; + temp_params = new String (Base64.getEncoder().encodeToString(cipher.doFinal(temp_params.getBytes()))); + if(doOffFlag && this.isOffusicated){temp_params = this.doOff(temp_params);} + return temp_params; }catch(Exception ex){ - return null; + return paramString; } } - + public String doDecrypt(String paramString){ try{ + String temp_params = paramString; cipher.init(2, sec_key ,iv_param); - paramString = new String (cipher.doFinal(Base64.getDecoder().decode(paramString))); - return paramString; + if(this.isOffusicated){ + temp_params = this.removeNull(temp_params); + temp_params = this.removeOff(temp_params); + } + temp_params = new String (cipher.doFinal(Base64.getDecoder().decode(temp_params))); + return temp_params; }catch(Exception ex){ - return null; + return paramString; } } @@ -131,7 +91,7 @@ public String removeNull(String paramString){ if (paramString != null) { return paramString.replace("%0A", "").replace("%2C",""); } - return null; + return paramString; } public String removeOff(String paramString) @@ -140,10 +100,9 @@ public String removeOff(String paramString) for(int i =0; i< this.offusicatedChar.length; i++){ paramString = paramString.replace(this.replaceWithChar[i], this.offusicatedChar[i]); } -// return paramString.replace("-", "+").replace("_", "/").replace(",", "="); return paramString; } - return null; + return paramString; } public String doOff(String paramString) @@ -152,28 +111,86 @@ public String doOff(String paramString) for(int i =0; i< this.offusicatedChar.length; i++){ paramString = paramString.replace(this.offusicatedChar[i], this.replaceWithChar[i]); } -// return paramString.replace("+", "-").replace("/", "_").replace("=", ","); return paramString; } - return null; + return paramString; } - + @Override - public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) { + public void processProxyMessage(boolean messageIsRequest, IInterceptedProxyMessage message) { if (messageIsRequest){ + IHttpRequestResponse messageInfo = message.getMessageInfo(); IRequestInfo reqInfo = helpers.analyzeRequest(messageInfo); List headers = reqInfo.getHeaders(); String request = new String(messageInfo.getRequest()); String URL = new String(reqInfo.getUrl().toString()); - if (URL.contains(this.reqURL)){ - String messageBody = request.substring(reqInfo.getBodyOffset()); + if (URL.contains(this.reqURL) && reqInfo.getMethod().toLowerCase().contains("post")){ + if(reqInfo.getParameters().size() > 2){ return; } + String messageBody = new String(request.substring(reqInfo.getBodyOffset())).trim(); +// this.stdout.println("PPM :: request :: " + messageBody); if ( !this.reqParameter.equals("") && messageBody.startsWith(this.reqParameter)){ String arr[] = messageBody.split(this.reqParameter); messageBody = arr[1].substring(0, arr[1].length()-1); } - messageBody = removeNull(messageBody); - if(this.isOffusicated){messageBody = removeOff(messageBody);} - messageBody = doDecrypt(messageBody); + + try{ + messageBody = doDecrypt(messageBody); +// this.stdout.println("PPM :: dec --> request :: " + messageBody); + byte[] updateMessage = helpers.buildHttpMessage(headers, messageBody.getBytes()); + messageInfo.setRequest(updateMessage); + }catch(Exception ex){ + stdout.println( messageBody + " :: Exception Here :: processProxyMessage request \n --> " + ex + "\n\n"); + } + + } + + } + else { + + if (this.decResponse != true){ + return; + } + IHttpRequestResponse messageInfo = message.getMessageInfo(); + IRequestInfo reqInfo = helpers.analyzeRequest(messageInfo); + String URL = new String(reqInfo.getUrl().toString()); + if (URL.contains(this.reqURL) && reqInfo.getMethod().toLowerCase().contains("post")){ + IResponseInfo resInfo = helpers.analyzeResponse(messageInfo.getResponse()); + List headers = resInfo.getHeaders(); + String response = new String(messageInfo.getResponse()); + String params = new String(response.substring(resInfo.getBodyOffset())).trim(); + try{ +// this.stdout.println("PPM :: before enc :: " + params); + params = doEncrypt(params, false); + if ( !this.resPrarameter.equals("")){ + params = this.resPrarameter + params; + } +// this.stdout.println("PPM :: after enc :: " + params); + byte[] updateMessage = helpers.buildHttpMessage(headers, params.getBytes()); + messageInfo.setResponse(updateMessage); + } + catch (Exception ex) { + stdout.println( params + ": Exception Here :: processProxyMessage response \n" + ex + "\n\n"); + } + } + } + } + + + + @Override + public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) { + if (messageIsRequest){ + IRequestInfo reqInfo = helpers.analyzeRequest(messageInfo); + List headers = reqInfo.getHeaders(); + String request = new String(messageInfo.getRequest()); + String URL = new String(reqInfo.getUrl().toString()); + if (URL.contains(this.reqURL) && reqInfo.getMethod().toLowerCase().contains("post")){ + if(reqInfo.getParameters().size() > 2){ return; } + String messageBody = request.substring(reqInfo.getBodyOffset()).trim(); +// this.stdout.println( "PHM :: before enc :: " + messageBody); + messageBody = doEncrypt(messageBody, true); + messageBody = "params=" + messageBody; +// this.stdout.println( "PHM :: after enc :: " + messageBody); byte[] updateMessage = helpers.buildHttpMessage(headers, messageBody.getBytes()); messageInfo.setRequest(updateMessage); } @@ -184,20 +201,27 @@ public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequ if (this.decResponse != true){ return; } +// this.stdout.println("----- response -----"); IRequestInfo reqInfo = helpers.analyzeRequest(messageInfo); String URL = new String(reqInfo.getUrl().toString()); - if (URL.contains(this.reqURL)){ + if (URL.contains(this.reqURL) && reqInfo.getMethod().toLowerCase().contains("post")){ IResponseInfo resInfo = helpers.analyzeResponse(messageInfo.getResponse()); List headers = resInfo.getHeaders(); String response = new String(messageInfo.getResponse()); - String params = new String(response.substring(resInfo.getBodyOffset())); + String params = new String(response.substring(resInfo.getBodyOffset())).trim(); try{ + if ( !this.resPrarameter.equals("") && params.startsWith(this.resPrarameter)){ + String arr[] = params.split(this.resPrarameter); + params = arr[1].substring(0, arr[1].length()-1); + } +// this.stdout.println("PHM :: before dec :: " + params); params = doDecrypt(params); +// this.stdout.println("PHM :: after dec :: " + params); byte[] updateMessage = helpers.buildHttpMessage(headers, params.getBytes()); messageInfo.setResponse(updateMessage); } catch (Exception ex) { - stdout.println( params.length() + ": Exception Here"); + stdout.println( params.length() + ": Exception Here :: processHttpMessage response"); } } } diff --git a/src/burp/MainPanel.form b/src/burp/MainPanel.form index 0109eaa..3ca8e86 100644 --- a/src/burp/MainPanel.form +++ b/src/burp/MainPanel.form @@ -81,6 +81,8 @@ + + @@ -94,6 +96,7 @@ + @@ -118,12 +121,12 @@ - - - - + + + + - + @@ -158,14 +161,14 @@ - - + + - + @@ -194,14 +197,14 @@ - + - + - + @@ -219,6 +222,9 @@ + + + @@ -234,19 +240,22 @@ - + + + + - + - + @@ -259,11 +268,6 @@ - - - - - @@ -278,7 +282,7 @@ - + @@ -290,10 +294,9 @@ - - + - + @@ -310,32 +313,14 @@ - - - - + + - - - - - - - - - - - - - - - - @@ -356,17 +341,25 @@ + + + + + - + + + + @@ -383,9 +376,14 @@ + + + + + - + @@ -413,44 +411,86 @@ - + - - + + - - - - + - - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/burp/MainPanel.java b/src/burp/MainPanel.java index 7eba35b..3c02888 100644 --- a/src/burp/MainPanel.java +++ b/src/burp/MainPanel.java @@ -5,6 +5,7 @@ */ package burp; +import java.awt.Color; import java.security.NoSuchAlgorithmException; import java.util.logging.Level; import java.util.logging.Logger; @@ -29,16 +30,24 @@ public class MainPanel extends javax.swing.JPanel { public MainPanel(BurpExtender burp) { this.myburp = burp; initComponents(); - this.jCheckBox1.setSelected(true); - this.jCheckBox3.setSelected(true); +// this.jCheckBox1.setSelected(true); this.jCheckBox2.setSelected(true); + this.jCheckBox3.setSelected(true); this.jCheckBox4.setSelected(true); this.jCheckBox5.setSelected(true); + this.jCheckBox6.setSelected(true); this.jCheckBox7.setSelected(true); + this.jCheckBox8.setSelected(true); + this.jCheckBox2.setEnabled(false); this.jCheckBox4.setEnabled(false); this.jCheckBox5.setEnabled(false); this.jCheckBox7.setEnabled(false); + this.jCheckBox8.setEnabled(false); + + this.jButton7.setEnabled(false); + this.jTextArea2.setLineWrap(true); + this.jTextArea3.setLineWrap(true); } /** @@ -67,27 +76,29 @@ private void initComponents() { jButton1 = new javax.swing.JButton(); jTextField5 = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); - jCheckBox1 = new javax.swing.JCheckBox(); jPanel8 = new javax.swing.JPanel(); - jButton3 = new javax.swing.JButton(); - jButton6 = new javax.swing.JButton(); jCheckBox2 = new javax.swing.JCheckBox(); jCheckBox4 = new javax.swing.JCheckBox(); jCheckBox5 = new javax.swing.JCheckBox(); jCheckBox7 = new javax.swing.JCheckBox(); + jCheckBox8 = new javax.swing.JCheckBox(); jButton7 = new javax.swing.JButton(); jTextField6 = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); jTextField7 = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); + jCheckBox6 = new javax.swing.JCheckBox(); jCheckBox3 = new javax.swing.JCheckBox(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jPanel7 = new javax.swing.JPanel(); - jScrollPane6 = new javax.swing.JScrollPane(); - jTextPane1 = new javax.swing.JTextPane(); - jScrollPane7 = new javax.swing.JScrollPane(); - jTextPane2 = new javax.swing.JTextPane(); + jTabbedPane3 = new javax.swing.JTabbedPane(); + jScrollPane2 = new javax.swing.JScrollPane(); + jTextArea2 = new javax.swing.JTextArea(); + jTabbedPane1 = new javax.swing.JTabbedPane(); + jScrollPane3 = new javax.swing.JScrollPane(); + jTextArea3 = new javax.swing.JTextArea(); + jButton2 = new javax.swing.JButton(); jTextArea1.setColumns(20); jTextArea1.setRows(5); @@ -112,15 +123,27 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jTextField2.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jTextField2ActionPerformed(evt); + } + }); + jLabel1.setText("Secret Key"); jLabel2.setText("Initialize Vector"); - jLabel3.setText("Request Parameter (Leave Blank if none)"); + jLabel3.setText("Request starts with (Leave Blank if none)"); + + jTextField4.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jTextField4ActionPerformed(evt); + } + }); - jLabel4.setText("Response Parameter (Leave Blank if none)"); + jLabel4.setText("Response starts with (Leave Blank if none)"); - jButton1.setText("Register AES Killer proxy Listener"); + jButton1.setText("Start AES Killer"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); @@ -129,24 +152,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel7.setText("Request URL Filter"); - jCheckBox1.setText("Decrypt Response too"); - jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder("")); - jButton3.setText("Override Burp HTTP Listener"); - jButton3.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton3ActionPerformed(evt); - } - }); - - jButton6.setText("Deregister Burp HTTP Listener"); - jButton6.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton6ActionPerformed(evt); - } - }); - jCheckBox2.setText("Proxy"); jCheckBox4.setText("Intruder"); @@ -155,13 +162,15 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBox7.setText("Repeater"); + jCheckBox8.setText("POST Method Only"); + javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8); jPanel8.setLayout(jPanel8Layout); jPanel8Layout.setHorizontalGroup( jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup() .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jCheckBox5) @@ -170,9 +179,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jCheckBox7) .addComponent(jCheckBox4))) - .addComponent(jButton6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jCheckBox8)) + .addContainerGap(33, Short.MAX_VALUE)) ); jPanel8Layout.setVerticalGroup( jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -185,20 +193,24 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jCheckBox5) .addComponent(jCheckBox4)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jButton3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jButton6) - .addContainerGap()) + .addComponent(jCheckBox8) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - jButton7.setText("Dergister AES Killer proxy Listener"); + jButton7.setText("Stop AES Killer"); jButton7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton7ActionPerformed(evt); } }); + jTextField6.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jTextField6ActionPerformed(evt); + } + }); + jLabel5.setText("Off. char (Separated with space)"); jTextField7.addActionListener(new java.awt.event.ActionListener() { @@ -209,7 +221,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel6.setText("Replace with (Separated with space)"); - jCheckBox3.setText("Remove Obfuscation"); + jCheckBox6.setText("Decrypt Response"); + + jCheckBox3.setText("Do Obfuscation"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); @@ -219,9 +233,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jButton7)) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() @@ -250,11 +264,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(38, 38, 38) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jCheckBox1) - .addComponent(jCheckBox3) .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, 167, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel7)))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 136, Short.MAX_VALUE) + .addComponent(jLabel7) + .addComponent(jCheckBox6) + .addComponent(jCheckBox3)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 139, Short.MAX_VALUE) .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); jPanel1Layout.setVerticalGroup( @@ -278,13 +292,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(jLabel4) .addComponent(jLabel6) .addComponent(jCheckBox3)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGap(10, 10, 10) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jCheckBox1)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE) + .addComponent(jCheckBox6)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton7)) @@ -308,15 +322,32 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jPanel7.setLayout(new java.awt.GridLayout(1, 0)); - jScrollPane6.setBorder(javax.swing.BorderFactory.createTitledBorder("")); - jScrollPane6.setViewportView(jTextPane1); + jTabbedPane3.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED)); + + jTextArea2.setColumns(20); + jTextArea2.setRows(5); + jScrollPane2.setViewportView(jTextArea2); + + jTabbedPane3.addTab("Input", jScrollPane2); + + jPanel7.add(jTabbedPane3); + + jTabbedPane1.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED)); - jPanel7.add(jScrollPane6); + jTextArea3.setColumns(20); + jTextArea3.setRows(5); + jScrollPane3.setViewportView(jTextArea3); - jScrollPane7.setBorder(javax.swing.BorderFactory.createTitledBorder("")); - jScrollPane7.setViewportView(jTextPane2); + jTabbedPane1.addTab("Output", jScrollPane3); - jPanel7.add(jScrollPane7); + jPanel7.add(jTabbedPane1); + + jButton2.setText("Clear"); + jButton2.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton2ActionPerformed(evt); + } + }); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); @@ -329,6 +360,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(jButton4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton5) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jButton2) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( @@ -339,7 +372,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton4) - .addComponent(jButton5)) + .addComponent(jButton5) + .addComponent(jButton2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, 213, Short.MAX_VALUE) .addContainerGap()) @@ -399,44 +433,23 @@ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS } this.myburp.reqURL = this.jTextField5.getText(); this.myburp.reqParameter = this.jTextField3.getText(); - this.myburp.decResponse = this.jCheckBox1.isSelected(); + this.myburp.resPrarameter = this.jTextField4.getText(); + this.myburp.decResponse = this.jCheckBox6.isSelected(); + this.myburp.callbacks.registerHttpListener(myburp); this.myburp.callbacks.registerProxyListener(myburp); - JOptionPane.showMessageDialog(null, "Proxy Listener Registered"); + JOptionPane.showMessageDialog(null, "AES Killer Started !!!"); + this.jButton1.setEnabled(false); + this.jButton7.setEnabled(true); }//GEN-LAST:event_jButton1ActionPerformed - private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed - if(!check_input()){ return;} - try { - this.myburp.cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - this.myburp.sec_key = new SecretKeySpec(this.jTextField1.getText().getBytes(),"AES"); - this.myburp.iv_param = new IvParameterSpec(this.jTextField2.getText().getBytes()); - } catch (NoSuchAlgorithmException ex) { - Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex); - } catch (NoSuchPaddingException ex) { - Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex); - } - this.myburp.reqURL = this.jTextField5.getText(); - this.myburp.reqParameter = this.jTextField3.getText(); - this.myburp.decResponse = this.jCheckBox1.isSelected(); - if(this.jCheckBox3.isSelected()){ - myburp.isOffusicated = true; - myburp.offusicatedChar = this.jTextField6.getText().trim().split(" "); - myburp.replaceWithChar = this.jTextField7.getText().trim().split(" "); - } - this.myburp.callbacks.registerHttpListener(myburp); - JOptionPane.showMessageDialog(null, "HTTP Listener Registered!!!"); - }//GEN-LAST:event_jButton3ActionPerformed - private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed + this.myburp.callbacks.removeHttpListener(myburp); this.myburp.callbacks.removeProxyListener(myburp); - JOptionPane.showMessageDialog(null, "Proxy Listener Deregistered"); + JOptionPane.showMessageDialog(null, "Stopping AES Killer"); + this.jButton7.setEnabled(false); + this.jButton1.setEnabled(true); }//GEN-LAST:event_jButton7ActionPerformed - private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed - this.myburp.callbacks.removeHttpListener(myburp); - JOptionPane.showMessageDialog(null, "HTTP Listener Deregistered!!!"); - }//GEN-LAST:event_jButton6ActionPerformed - private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed try { this.myburp.cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); @@ -453,10 +466,10 @@ private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS myburp.replaceWithChar = this.jTextField7.getText().trim().split(" "); } - String enc_str = new String(this.jTextPane1.getText()); + String enc_str = new String(this.jTextArea2.getText()); if(this.jCheckBox3.isSelected()){enc_str = this.myburp.removeNull(this.myburp.removeOff(enc_str));} String dec_str = new String(this.myburp.doDecrypt(enc_str)); - this.jTextPane2.setText(dec_str); + this.jTextArea3.setText(dec_str); // JOptionPane.showMessageDialog(null, dec_str); }//GEN-LAST:event_jButton4ActionPerformed @@ -470,29 +483,46 @@ private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS } catch (NoSuchPaddingException ex) { Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex); } - String dec_str = new String(this.jTextPane1.getText()); - String enc_str = new String(this.myburp.doEncrypt(dec_str)); - this.jTextPane2.setText(enc_str); + String dec_str = new String(this.jTextArea2.getText()); + String enc_str = new String(this.myburp.doEncrypt(dec_str, true)); + this.jTextArea3.setText(enc_str); }//GEN-LAST:event_jButton5ActionPerformed private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField7ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jTextField7ActionPerformed + private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField2ActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_jTextField2ActionPerformed + + private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField4ActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_jTextField4ActionPerformed + + private void jTextField6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField6ActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_jTextField6ActionPerformed + + private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed + this.jTextArea2.setText(""); + this.jTextArea3.setText(""); + }//GEN-LAST:event_jButton2ActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; - private javax.swing.JButton jButton3; + private javax.swing.JButton jButton2; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; - private javax.swing.JButton jButton6; private javax.swing.JButton jButton7; - private javax.swing.JCheckBox jCheckBox1; private javax.swing.JCheckBox jCheckBox2; private javax.swing.JCheckBox jCheckBox3; private javax.swing.JCheckBox jCheckBox4; private javax.swing.JCheckBox jCheckBox5; + private javax.swing.JCheckBox jCheckBox6; private javax.swing.JCheckBox jCheckBox7; + private javax.swing.JCheckBox jCheckBox8; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; @@ -506,10 +536,14 @@ private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JScrollPane jScrollPane6; - private javax.swing.JScrollPane jScrollPane7; + private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JScrollPane jScrollPane3; + private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JTabbedPane jTabbedPane2; + private javax.swing.JTabbedPane jTabbedPane3; private javax.swing.JTextArea jTextArea1; + private javax.swing.JTextArea jTextArea2; + private javax.swing.JTextArea jTextArea3; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; @@ -517,7 +551,5 @@ private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; - private javax.swing.JTextPane jTextPane1; - private javax.swing.JTextPane jTextPane2; // End of variables declaration//GEN-END:variables }