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

# s3scanner

> A tool to find open S3 buckets and dump their contents.

export const ToolDetails = ({id, name, description, category, author, inputs, created_date, container, source_url, license, output_command, output_type, iframe_url}) => <div style={{
  display: 'flex',
  gap: '24px'
}}>
    <div style={{
  flex: '1',
  display: 'flex',
  flexDirection: 'column',
  gap: '16px'
}}>
      <div style={{
  backgroundColor: 'var(--background-card)',
  borderRadius: '12px',
  boxShadow: '0 2px 4px rgba(0,0,0,0.05)'
}}>
        <div style={{
  backgroundColor: 'var(--background-default)',
  borderRadius: '8px',
  border: '1px solid var(--border-default)'
}}>
          <div style={{
  display: 'flex',
  flexDirection: 'column',
  gap: '12px'
}}>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Name:</strong>
              <span>{name}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Category:</strong>
              <span>{category}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Publisher:</strong>
              <span>{author}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Created:</strong>
              <span>{new Date(created_date).toLocaleDateString()}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Container:</strong>
              <code style={{
  padding: '2px 6px',
  backgroundColor: 'var(--background-code)',
  borderRadius: '4px',
  fontSize: '0.9em'
}}>{container}</code>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Output Type:</strong>
              <span>{output_type}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>License:</strong>
              <span>{license}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Source:</strong>
              <a href={source_url} target="_blank" rel="noopener noreferrer" style={{
  color: 'var(--text-link)',
  textDecoration: 'none',
  ':hover': {
    textDecoration: 'underline'
  }
}}>
                View Source
              </a>
            </div>
          </div>
        </div>
      </div>

      <div style={{
  backgroundColor: 'var(--background-card)',
  borderRadius: '8px'
}}>
        <h3 style={{
  fontSize: '1.2rem',
  marginBottom: '16px'
}}>Parameters</h3>
        <div style={{
  display: 'flex',
  flexDirection: 'column',
  gap: '12px'
}}>
          {Object.entries(inputs).map(([key, value]) => <ParamField key={key} query={key} type={value.type.toLowerCase()} optional={!value.visible} required={value.visible}>
              <code style={{
  marginRight: '8px'
}}>{value.command}</code>
              {value.description}
            </ParamField>)}
        </div>
      </div>
    </div>

    <div style={{
  width: '400px'
}}>
      <Frame style={{
  width: '100%',
  height: '100%'
}}>
        <iframe src={iframe_url} style={{
  width: '100%',
  height: '400px',
  border: 'none',
  borderRadius: '8px',
  display: 'block'
}} scrolling="no" />
      </Frame>
    </div>
  </div>;

<ToolDetails
  id="8396fea5-0d04-4560-b792-d155ba22769c"
  name="s3scanner"
  description="A tool to find open S3 buckets and dump their contents."
  category="Cloud Storage"
  author="trickest"
  created_date="2021-09-07"
  container="quay.io/trickest/s3scanner:2.0.2"
  source_url="https://github.com/sa7mon/S3Scanner"
  license="Unknown"
  output_command=">"
  output_type=""
  iframe_url="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/8396fea5-0d04-4560-b792-d155ba22769c.json"
  inputs={ {
"dump": {
"type": "BOOLEAN",
"order": 4,
"command": "dump",
"visible": true,
"description": "Dump the contents of buckets",
},
"scan": {
"type": "BOOLEAN",
"order": 4,
"command": "scan",
"visible": true,
"description": "Scan bucket permissions",
},
"threads": {
"type": "STRING",
"order": 0,
"command": "--threads",
"visible": false,
"description": "Number of threads to use. Default: 4",
},
"insecure": {
"type": "BOOLEAN",
"order": 3,
"command": "--insecure",
"visible": false,
"description": "Do not verify SSL",
},
"buckets-file": {
"type": "FILE",
"order": 5,
"command": "--buckets-file",
"visible": true,
"description": "File containing bucket names.",
},
"endpoint-url": {
"type": "STRING",
"order": 1,
"command": "--endpoint-url",
"visible": false,
"description": "Please specify endpoint URL",
},
"endpoint-address-style": {
"type": "STRING",
"order": 2,
"command": "--endpoint-address-style",
"visible": false,
"description": "{path,vhost}",
},
}}
/>
