> ## Documentation Index
> Fetch the complete documentation index at: https://trickest.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Attack Surface Management Modules

> Explore a collection of powerful and efficient modules in the Attack Surface Management category to enhance your workflows.

export const ModuleCard = ({name, category, inputs, outputs, description, author, createdDate, iframeUrl}) => <a href={`${category.replace(/\s+/g, '-').toLowerCase()}/${name.replace(/\s+/g, '-').toLowerCase()}`} style={{
  textDecoration: 'none'
}}>
    <div style={{
  background: 'linear-gradient(145deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.02) 100%)',
  borderRadius: '16px',
  overflow: 'hidden',
  transition: 'transform 0.4s cubic-bezier(0.215,0.61,0.355,1), box-shadow 0.3s ease',
  height: '40rem',
  width: '100%',
  display: 'flex',
  marginBottom: '16px',
  flexDirection: 'column',
  border: '1px solid rgba(255, 255, 255, 0.1)',
  boxShadow: '0px 8px 32px -2px rgba(0, 0, 0, 0.25), 0px 1px 2px 0px rgba(255, 255, 255, 0.07)',
  backdropFilter: 'blur(8px)',
  position: 'relative',
  perspective: '1000px'
}} onMouseOver={e => {
  e.currentTarget.style.boxShadow = '0 8px 32px -2px rgba(0, 0, 0, 0.4)';
  e.currentTarget.style.transform = 'translateY(-4px) scale(1.02)';
}} onMouseOut={e => {
  e.currentTarget.style.boxShadow = '0px 8px 32px -2px rgba(0, 0, 0, 0.25), 0px 1px 2px 0px rgba(255, 255, 255, 0.07)';
  e.currentTarget.style.transform = 'translateY(0) scale(1)';
}}>
      <div style={{
  width: '100%',
  height: '300px',
  borderBottom: '1px solid rgba(255, 255, 255, 0.1)',
  position: 'relative'
}}>
        <div style={{
  position: 'absolute',
  top: 0,
  left: 0,
  right: 0,
  bottom: 0,
  background: 'linear-gradient(45deg, rgba(0, 163, 255, 0.1) 0%, rgba(0, 101, 255, 0.05) 100%)'
}} />
        <iframe src={iframeUrl} style={{
  width: '100%',
  height: '100%',
  border: 'none',
  position: 'relative',
  zIndex: 1,
  background: 'transparent'
}} scrolling="no" />
      </div>

      <div style={{
  padding: '1.5rem',
  display: 'flex',
  flexDirection: 'column',
  height: 'calc(100% - 300px)',
  gap: '10px'
}}>
        <h2 style={{
  color: '#ffffff',
  fontSize: '1.4rem',
  margin: 0,
  fontWeight: '600',
  lineHeight: '1.3'
}}>
          {name}
        </h2>

        <p style={{
  color: 'rgba(163, 179, 188, 0.8)',
  fontSize: '0.9rem',
  margin: 0,
  lineHeight: '1.4',
  overflow: 'hidden',
  textOverflow: 'ellipsis',
  display: '-webkit-box',
  WebkitLineClamp: 2,
  WebkitBoxOrient: 'vertical',
  flex: '0 0 auto',
  height: '2.7rem'
}}>
          {description}
        </p>

        <div style={{
  display: 'flex',
  flexDirection: 'column',
  gap: '12px',
  flex: 1,
  minHeight: '8rem'
}}>
          <div style={{
  flex: 1
}}>
            <div style={{
  display: 'flex',
  alignItems: 'center',
  gap: '8px',
  marginBottom: '4px',
  color: '#00a3ff',
  fontSize: '0.75rem'
}}>
              <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor">
                <path d="M5 12h14M12 5l7 7-7 7" />
              </svg>
              INPUTS
            </div>
            <div style={{
  display: 'flex',
  flexWrap: 'wrap',
  gap: '6px',
  paddingRight: '4px'
}}>
              {inputs.slice(0, 5).map((input, index) => <span key={index} style={{
  background: 'rgba(0, 163, 255, 0.1)',
  borderRadius: '6px',
  padding: '2px 8px',
  fontSize: '0.7rem',
  display: 'inline-flex',
  alignItems: 'center',
  gap: '4px',
  color: '#00a3ff',
  border: '1px solid rgba(0, 163, 255, 0.2)'
}}>
                  {input}
                </span>)}
              {inputs.length > 6 && <span style={{
  background: 'rgba(255, 255, 255, 0.05)',
  borderRadius: '4px',
  padding: '1px 6px',
  fontSize: '0.6rem',
  color: 'rgba(0, 163, 255, 0.6)',
  border: '1px solid rgba(0, 163, 255, 0.1)',
  display: 'inline-flex',
  alignItems: 'center'
}}>
                  +{inputs.length - 5}
                </span>}
            </div>
          </div>

          <div style={{
  flex: 1
}}>
            <div style={{
  display: 'flex',
  alignItems: 'center',
  gap: '8px',
  marginBottom: '4px',
  color: '#ff6b00',
  fontSize: '0.75rem'
}}>
              <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor">
                <circle cx="12" cy="12" r="10" /><path d="M8 12h8" />
              </svg>
              OUTPUTS
            </div>
            <div style={{
  display: 'flex',
  flexWrap: 'wrap',
  gap: '6px',
  paddingRight: '4px'
}}>
              {outputs.slice(0, 5).map((output, index) => <span key={index} style={{
  background: 'rgba(255, 107, 0, 0.1)',
  borderRadius: '6px',
  padding: '2px 8px',
  fontSize: '0.7rem',
  display: 'inline-flex',
  alignItems: 'center',
  gap: '4px',
  color: '#ff6b00',
  border: '1px solid rgba(255, 107, 0, 0.2)'
}}>
                  {output}
                </span>)}
              {outputs.length > 6 && <span style={{
  background: 'rgba(255, 255, 255, 0.05)',
  borderRadius: '4px',
  padding: '1px 6px',
  fontSize: '0.6rem',
  color: 'rgba(255, 107, 0, 0.6)',
  border: '1px solid rgba(255, 107, 0, 0.1)',
  display: 'inline-flex',
  alignItems: 'center'
}}>
                  +{outputs.length - 5}
                </span>}
            </div>
          </div>
        </div>
      </div>
      
      <div style={{
  borderTop: '1px solid rgba(255, 255, 255, 0.1)',
  padding: '1rem 1.5rem',
  display: 'flex',
  justifyContent: 'space-between',
  alignItems: 'center',
  background: 'rgba(0, 0, 0, 0.15)',
  marginTop: 'auto',
  fontSize: '0.8rem'
}}>
        <div style={{
  display: 'flex',
  alignItems: 'center',
  gap: '8px'
}}>
          <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="rgba(163, 179, 188, 0.8)" strokeWidth="2">
            <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" /><circle cx="12" cy="7" r="4" />
          </svg>
          <span style={{
  color: 'rgba(163, 179, 188, 0.8)'
}}>{author}</span>
        </div>
        <div style={{
  display: 'flex',
  alignItems: 'center',
  gap: '8px'
}}>
          <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="rgba(163, 179, 188, 0.8)" strokeWidth="2">
            <circle cx="12" cy="12" r="10" /><path d="M12 6v6l4 2" />
          </svg>
          <span style={{
  color: 'rgba(163, 179, 188, 0.8)'
}}>{createdDate}</span>
        </div>
      </div>
    </div>
  </a>;

<CardGroup cols={2}>
  <ModuleCard name="Enumerate Hostnames via OSINT Sources" category="Attack Surface Management" inputs={["domains", "source-configuration"]} outputs={["subdomains", "subdomain-details", "potential-hostnames", "potential-hostname-details", "subdomain-wildcards", "subdomain-wildcard-details", "potential-hostname-wildcards", "potential-hostname-wildcard-details"]} description="Enumerate subdomains and hostnames passively using OSINT data sources" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/bb453065-b93e-445c-8bc9-71da761f4eee.json" />

  <ModuleCard name="Enumerate Hostnames via Root Domain DNS Brute Force" category="Attack Surface Management" inputs={["domains", "wordlist"]} outputs={["subdomains", "subdomain-details"]} description="Enumerate subdomains of a list of domains via DNS brute force" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/b97776d9-a676-416e-9afe-b47429a49494.json" />

  <ModuleCard name="Enumerate Hostnames via Recursive DNS Brute Force" category="Attack Surface Management" inputs={["hostnames", "level-2-wordlist", "level-3-wordlist", "level-4-wordlist", "hostnames-per-level"]} outputs={["hostnames", "hostname-details"]} description="Enumerate sub-subdomains of a list of hostnames using DNS brute force on the most likely hostnames" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/65339daa-dca5-47f8-81ab-5af3db009925.json" />

  <ModuleCard name="Enumerate Hostnames via DNS Permutations Brute Force" category="Attack Surface Management" inputs={["hostnames"]} outputs={["hostnames", "hostname-details"]} description="Enumerate hostnames by checking for permutations of known hostnames" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/a1976445-780a-4c2f-9e24-63bc57a0fa17.json" />

  <ModuleCard name="Enumerate Hostnames via Crawling" category="Attack Surface Management" inputs={["depth", "header", "header-file", "web-servers"]} outputs={["subdomains", "subdomain-details"]} description="Enumerate subdomains by crawling web servers and analyzing their HTML content and headers" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/b4c23a0f-7428-47e7-8b49-a95a8f6decdf.json" />

  <ModuleCard name="Generate Custom DNS Wordlists" category="Attack Surface Management" inputs={["hostnames"]} outputs={["level-1-wordlist", "level-2-wordlist", "level-3-wordlist", "level-4-wordlist"]} description="Generate custom DNS brute force wordlists using known hostnames" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/9a0aebe5-1b93-4cd6-afe9-737f92200698.json" />

  <ModuleCard name="Enumerate DNS Records" category="Attack Surface Management" inputs={["hosts"]} outputs={["dns-records", "resolving-hostnames", "ip-address-details", "ip-addresses", "subdomains", "subdomain-details", "potential-hostnames", "potential-hostname-details", "subdomain-wildcards", "subdomain-wildcard-details", "potential-hostname-wildcards", "potential-hostname-wildcard-details"]} description="Enumerate DNS records for a list of hostnames, IP addresses, or IP ranges" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/3e7eaaef-c61b-4ea8-bff9-68a4fe1224b9.json" />

  <ModuleCard name="Probe for Web Servers" category="Attack Surface Management" inputs={["hosts", "header", "header-file"]} outputs={["web-servers", "web-server-details", "subdomains", "subdomain-details", "potential-hostnames", "potential-hostname-details", "subdomain-wildcards", "subdomain-wildcard-details", "potential-hostname-wildcards", "potential-hostname-wildcard-details"]} description="Probe for web servers on a list of hostnames, IP addresses, or IP ranges" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/c3847326-8ece-4348-a0fc-c18dfc850c85.json" />

  <ModuleCard name="Scan for Open Ports" category="Attack Surface Management" inputs={["hosts", "ports", "exclude-ports", "port-threshold"]} outputs={["port-details", "hostname-ports", "ip-ports"]} description="Scan for the top 1000 most common open ports on a list of hostnames, IP addresses, or IP ranges  " author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/ebd8bdcb-9a95-4954-a870-f8d8c76159e7.json" />

  <ModuleCard name="Fingerprint Network Services" category="Attack Surface Management" inputs={["port-details"]} outputs={["network-service-details"]} description="Identify services running on network ports" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/6699ec1a-977b-415f-9c0d-cd3f8f0adf9a.json" />

  <ModuleCard name="Fingerprint Web Technologies" category="Attack Surface Management" inputs={["header", "web-servers"]} outputs={["web-technologies"]} description="Identify technologies running on a list of web servers" author="trickest-mhmdiaa" createdDate="2024-07-04" iframeUrl="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/3768e3a3-9a00-4912-9597-47e24ae92a2e.json" />
</CardGroup>
