1"use strict";(self.webpackChunkveil_framework=self.webpackChunkveil_framework||[]).push([[2720],{210:function(e,t,n){n.r(t),n.d(t,{Head:function(){return h},default:function(){return f}});var a=n(8453),l=n(6540);function r(e){const t=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",ol:"ol",strong:"strong",code:"code",a:"a"},(0,a.RP)(),e.components);return l.createElement(l.Fragment,null,l.createElement(t.h1,null,"Veil Command-Line Usage"),"\n",l.createElement(t.p,null,"The Veil Framework supports both an interactive menu-driven interface and a fully scriptable command-line interface. This reference covers the CLI flags, module selection options, and output configuration for automated and repeatable security testing in lab environments."),"\n",l.createElement(t.p,null,"For most users, the interactive mode is the place to start â it guides you through module and payload selection with prompts. But when you need to run the same test configuration repeatedly (as you do in structured purple team exercises), the CLI mode is essential."),"\n",l.createElement(t.h2,null,"Basic Invocation"),"\n",l.createElement(t.p,null,"The framework is invoked from the installation directory. The base command launches the interactive menu. Adding flags bypasses the menu and runs specific operations directly."),"\n",l.createElement(t.p,null,"Common invocation patterns:"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"Launch interactive mode â no flags needed"),"\n",l.createElement(t.li,null,"List available modules and payloads â use the list flag"),"\n",l.createElement(t.li,null,"Generate a specific payload with predefined options â specify the tool, payload, and output parameters"),"\n"),"\n",l.createElement(t.h2,null,"Module Selection"),"\n",l.createElement(t.p,null,"The framework organizes payloads by module and by language. The selection hierarchy follows this pattern:"),"\n",l.createElement(t.ol,null,"\n",l.createElement(t.li,null,l.createElement(t.strong,null,"Module")," â Which tool (Evasion is the primary payload generation module)"),"\n",l.createElement(t.li,null,l.createElement(t.strong,null,"Language")," â Python, C, PowerShell, Ruby, etc."),"\n",l.createElement(t.li,null,l.createElement(t.strong,null,"Payload type")," â Specific payload variant within the selected language"),"\n"),"\n",l.createElement(t.p,null,"Each combination produces different output characteristics, which matters for detection testing. A C-compiled payload interacts with the file system and AV engine differently than a PowerShell script."),"\n",l.createElement(t.h2,null,"Output Options"),"\n",l.createElement(t.p,null,"Generated payloads are saved to the configured output directory. You can control:"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.strong,null,"Output path")," â Where the generated file is written"),"\n",l.createElement(t.li,null,l.createElement(t.strong,null,"File name")," â Custom naming for organized test runs"),"\n",l.createElement(t.li,null,l.createElement(t.strong,null,"Handler configuration")," â Listener settings for callback-based payloads"),"\n"),"\n",l.createElement(t.p,null,"For structured testing, establish a naming convention that includes the date, payload type, and test iteration. This makes it much easier to correlate payload files with detection events after a testing session."),"\n",l.createElement(t.h2,null,"Scripted and Automated Usage"),"\n",l.createElement(t.p,null,"For automated test suites, the CLI accepts all parameters directly. This allows you to script payload generation in shell scripts or CI-like pipelines."),"\n",l.createElement(t.p,null,"A typical automation pattern for purple team exercises:"),"\n",l.createElement(t.ol,null,"\n",l.createElement(t.li,null,"Generate a set of payloads across different languages and configurations"),"\n",l.createElement(t.li,null,"Deploy each payload to the target range sequentially"),"\n",l.createElement(t.li,null,"Wait for detection events to propagate to your SIEM"),"\n",l.createElement(t.li,null,"Compare expected detections against actual detections"),"\n",l.createElement(t.li,null,"Document gaps"),"\n"),"\n",l.createElement(t.p,null,"Automating this workflow ensures consistent test conditions across multiple iterations, which is critical for measuring detection improvement over time."),"\n",l.createElement(t.h2,null,"Common Flags Reference"),"\n",l.createElement(t.p,null,"| Flag | Description |\n|---|---|\n| ",l.createElement(t.code,null,"--list-tools")," | List available tool modules |\n| ",l.createElement(t.code,null,"--list-payloads")," | List payloads for a given tool |\n| ",l.createElement(t.code,null,"-t"),", ",l.createElement(t.code,null,"--tool")," | Select a specific tool module |\n| ",l.createElement(t.code,null,"-p"),", ",l.createElement(t.code,null,"--payload")," | Specify payload type |\n| ",l.createElement(t.code,null,"-o"),", ",l.createElement(t.code,null,"--output")," | Set output file path |\n| ",l.createElement(t.code,null,"--clean")," | Remove cached compilation artifacts |\n| ",l.createElement(t.code,null,"--update")," | Check for and apply updates |"),"\n",l.createElement(t.h2,null,"Tips from Experience"),"\n",l.createElement(t.p,null,l.createElement(t.strong,null,"Name your output files consistently.")," After a long testing session with dozens of generated payloads, you will thank yourself for a clear naming convention."),"\n",l.createElement(t.p,null,l.createElement(t.strong,null,"Script your monitoring checks alongside payload generation.")," If you automate the generation side, automate the detection verification too. A script that generates a payload and then queries your SIEM for the expected event within 60 seconds turns manual checking into automated regression testing."),"\n",l.createElement(t.p,null,l.createElement(t.strong,null,"Keep notes on what each payload configuration tests.")," Not all payloads exercise the same detection surface. Document which techniques each configuration maps to."),"\n",l.createElement(t.h2,null,"Related"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.strong,null,l.createElement(t.a,{href:"/veil-tutorial/"},"Veil Tutorial"))," â Getting started walkthrough"),"\n",l.createElement(t.li,null,l.createElement(t.strong,null,l.createElement(t.a,{href:"/framework/veil-evasion/"},"Veil-Evasion"))," â Evasion module deep dive"),"\n",l.createElement(t.li,null,l.createElement(t.strong,null,l.createElement(t.a,{href:"/modules/"},"Modules"))," â Full module directory"),"\n"))}var c=function(e={}){const{wrapper:t}=Object.assign({},(0,a.RP)(),e.components);return t?l.createElement(t,e,l.createElement(r,e)):r(e)},o=n(9329),s=n(1744),i=n(8963),m=n(8752),u=n(7304);function d(e){if(!e)return null;try{return new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"}).format(new Date(e))}catch{return null}}function p({pageContext:e,children:t}){const{frontmatter:n}=e,a=(null==n?void 0:n.title)||"",r=(null==n?void 0:n.description)||"",c=(null==n?void 0:n.slug)||"",s=(null==n?void 0:n.heroImage)||null,p=(null==n?void 0:n.date)||null,f=(null==n?void 0:n.lastmod)||null,h=d(p),E=f&&f!==p?d(f):null;return l.createElement(o.A,null,s&&l.createElement(i.A,{title:a,subtitle:r,backgroundImage:s}),l.createElement("article",{className:"page-content"},l.createElement("div",{className:"container"},h&&l.createElement("p",{className:"post-meta"},l.createElement("time",{dateTime:p},"Published ",h),E&&l.createElement(l.Fragment,null," · ",l.createElement("time",{dateTime:f},"Updated ",E))),l.createElement("div",{className:"post-layout-grid"},l.createElement("div",{className:"post-main"},t),l.createElement("aside",{className:"post-sidebar","aria-label":"Sidebar"},l.createElement("div",{className:"post-sidebar-scroll"},l.createElement(u.A),l.createElement(m.A,{sourceUrl:c})))))))}function f(e){return l.createElement(p,e,l.createElement(c,e))}function h({pageContext:e}){const{frontmatter:t}=e,n=null!=t&&t.heroImage?`https://www.veil-framework.com${t.heroImage}`:null;
1return l.createElement(s.A,{title:null==t?void 0:t.title,description:null==t?void 0:t.description,pathname:null==t?void 0:t.slug},(null==t?void 0:t.date)&&l.createElement("meta",{property:"article:published_time",content:t.date}),(null==t?void 0:t.lastmod)&&l.createElement("meta",{property:"article:modified_time",content:t.lastmod}),n&&l.createElement("meta",{property:"og:image",content:n}),n&&l.createElement("meta",{name:"twitter:image",content:n}))}},7304:function(e,t,n){n.d(t,{A:function(){return r}});var a=n(6540);function l({href:e,children:t,className:n,...l}){return a.createElement("a",Object.assign({href:e,target:"_blank",rel:"sponsored nofollow noopener",className:n},l),t)}function r(){const e="/veil-recommends/infosec-fundamentals";return a.createElement("aside",{className:"fc-wrap","aria-label":"Recommended course"},a.createElement("div",{className:"fc-header"},a.createElement("span",{className:"fc-dot fc-dot-r","aria-hidden":"true"}),a.createElement("span",{className:"fc-dot fc-dot-a","aria-hidden":"true"}),a.createElement("span",{className:"fc-dot fc-dot-g","aria-hidden":"true"}),a.createElement("span",{className:"fc-header-label"},"course_spotlight.sh")),a.createElement(l,{href:e,className:"fc-image-link","aria-label":"View Information Security Fundamentals course"},a.createElement("img",{src:"/img/hero/infosec-fundamentals.webp",alt:"Information Security Fundamentals course cover",className:"fc-image",loading:"lazy",width:"300",height:"169"})),a.createElement("div",{className:"fc-body"},a.createElement("div",{className:"fc-tag"},"Recommended Course"),a.createElement("h3",{className:"fc-title"},a.createElement(l,{href:e,className:"fc-title-link"},"Information Security Fundamentals")),a.createElement("p",{className:"fc-desc"},"Build a solid foundation in cybersecurity. Covers network fundamentals, common attack vectors, defensive controls, and the mindset needed for security research."),a.createElement("ul",{className:"fc-features"},a.createElement("li",{className:"fc-feature"},a.createElement("span",{className:"fc-feature-icon","aria-hidden":"true"},"â¸"),"Beginner-friendly â no prior experience needed"),a.createElement("li",{className:"fc-feature"},a.createElement("span",{className:"fc-feature-icon","aria-hidden":"true"},"â¸"),"Network attacks & defences"),a.createElement("li",{className:"fc-feature"},a.createElement("span",{className:"fc-feature-icon","aria-hidden":"true"},"â¸"),"Real-world security concepts")),a.createElement(l,{href:e,className:"fc-cta"},"View Course",a.createElement("span",{className:"fc-cta-arrow","aria-hidden":"true"}," â")),a.createElement("p",{className:"fc-disclosure"},"We may earn a commission if you enrol via our link, at no extra cost to you.")))}},8453:function(e,t,n){n.d(t,{RP:function(){return r}});var a=n(6540);const l=a.createContext({});function r(e){const t=a.useContext(l);return a.useMemo(()=>"function"==typeof e?e(t):{...t,...e},[t,e])}},8752:function(e,t,n){n.d(t,{A:function(){return l}});var a=n(6540);function l({sourceUrl:e}){const{0:t,1:n}=(0,a.useState)("idle"),{0:l,1:r}=(0,a.useState)("");return a.createElement("aside",{className:"nl-sw-wrap","aria-label":"Newsletter signup"},a.createElement("div",{className:"nl-sw-header"},a.createElement("span",{className:"nl-sw-dot nl-sw-dot-r","aria-hidden":"true"}),a.createElement("span",{className:"nl-sw-dot nl-sw-dot-a","aria-hidden":"true"}),a.createElement("span",{className:"nl-sw-dot nl-sw-dot-g","aria-hidden":"true"}),a.createElement("span",{className:"nl-sw-title"},"intel_feed.sh")),a.createElement("div",{className:"nl-sw-body"},a.createElement("p",{className:"nl-sw-prompt"},a.createElement("span",{className:"nl-sw-caret","aria-hidden":"true"},"$")," ","subscribe --to evasion-intel"),a.createElement("h3",{className:"nl-sw-heading"},"Stay ahead of the curve"),a.createElement("p",{className:"nl-sw-desc"},"AV bypass techniques, detection gaps, and lab-tested research â delivered before the mainstream catches up."),"done"===t?a.createElement("div",{className:"nl-sw-success",role:"status"},a.createElement("span",{className:"nl-sw-check","aria-hidden":"true"},"â"),a.createElement("div",null,a.createElement("strong",null,"Subscribed."),a.createElement("br",null),a.createElement("span",{className:"nl-sw-success-sub"},"Confirm your email to activate."))):a.createElement("form",{onSubmit:async function(e){e.preventDefault();const t=e.currentTarget,a=new FormData(t);
1if(!a.get("company")){n("loading"),r("");try{const e=await fetch("/api/subscribe",{method:"POST",body:a}),l=await e.json();l.success?(n("done"),t.reset()):(n("err"),r(l.error||"Something went wrong."))}catch{n("err"),r("Network error â please try again.")}}},className:"nl-sw-form",noValidate:!0},a.createElement("input",{type:"hidden",name:"site",value:"veil-framework"}),a.createElement("input",{type:"hidden",name:"source_url",value:e||""}),a.createElement("input",{type:"text",name:"company",tabIndex:"-1","aria-hidden":"true",className:"nl-sw-hp",autoComplete:"off"}),a.createElement("label",{htmlFor:"nl-sw-name",className:"nl-sw-label"},"Your name"),a.createElement("input",{id:"nl-sw-name",type:"text",name:"name",placeholder:"alias or handle",required:!0,autoComplete:"given-name",className:"nl-sw-input",disabled:"loading"===t}),a.createElement("label",{htmlFor:"nl-sw-email",className:"nl-sw-label"},"Email address"),a.createElement("input",{id:"nl-sw-email",type:"email",name:"email",placeholder:"[email protected]",required:!0,autoComplete:"email",className:"nl-sw-input",disabled:"loading"===t}),"err"===t&&a.createElement("p",{className:"nl-sw-error",role:"alert"},l),a.createElement("button",{type:"submit",className:"nl-sw-btn",disabled:"loading"===t},"loading"===t?"Connectingâ¦":"Subscribe to intel â"),a.createElement("p",{className:"nl-sw-legal"},"No spam. No vendor fluff. Unsubscribe any time."))))}},8963:function(e,t,n){n.d(t,{A:function(){return l}});var a=n(6540);function l({title:e,subtitle:t,primaryLink:n,primaryText:l,secondaryLink:r,secondaryText:c,backgroundImage:o}){const s=o?{backgroundImage:`linear-gradient(135deg, rgba(37, 99, 235, 0.85) 0%, rgba(13, 33, 55, 0.9) 100%), url(${o})`,backgroundSize:"cover",backgroundPosition:"center"}:{};return a.createElement("section",{className:"hero blueprint-section-subtle",style:s},a.createElement("div",{className:"container"},a.createElement("h1",null,e),t&&a.createElement("p",null,t),(n||r)&&a.createElement("div",{style:{display:"flex",gap:"var(--space-md)",flexWrap:"wrap"}},n&&a.createElement("a",{href:n,className:"btn btn-primary"},l||"Get Started"),r&&a.createElement("a",{href:r,className:"btn btn-outline"},c||"Learn More"))))}}}]); 2//# sourceMappingURL=component---src-components-page-template-jsx-content-file-path-content-posts-veil-command-line-usage-mdx-ebf3c630d47ee70c7319.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.