Skip to content
This repository was archived by the owner on Jul 17, 2025. It is now read-only.

Nuclei Debut#42

Merged
apurvagoenka-method merged 31 commits intodevelopfrom
apurva/met-5468-nuclei-initial-pr
May 19, 2025
Merged

Nuclei Debut#42
apurvagoenka-method merged 31 commits intodevelopfrom
apurva/met-5468-nuclei-initial-pr

Conversation

@apurvagoenka-method
Copy link
Copy Markdown
Contributor

@apurvagoenka-method apurvagoenka-method commented May 14, 2025

Nuclei Debut

This is a huge moment for methodwebtest as we move away from a custom requests and vuln scanning engine towards Nuclei and custom templates that leverage its DSL.

This PR also takes this opportunity to perform some high-level organization of the scanning logic - at this stage, this tool is broken down into 2 top level modules:

DAST and Scan High Level Modules:

$ methodwebtest pentest
Penetration testing commands

Usage:
  methodwebtest pentest [command]

Available Commands:
  dast        Dast targets to discover previously unknown vulnerabilities
  scan        Scan targets for known vulnerabilities

DAST (discovers previously-unknown vulns) - allows us to potentially eat another security point product (DAST scanners). This module implements a multi-modal fuzzer that gives us the ability to fuzz injection points across param locations header | query | body | cookie | path

  • Allows filtering on --vuln-types for bug classes and specifying --http-methods for "cluster bomb" injections across several methods.
  • When paired with effective spidering, this can become a very powerful tool that continuously performs autonomous injections.
  • Detects OOB (out-of-band) vulns (Nuclei integrates with interactsh-servers, this feature is a TODO)

Scan - allows us to immediately leverage the power of thousands of templates from the larger security community and exponentially expand our detection surface. We can now detect all vulns with public exploits available between 2000-2025!!

  • Allows filtering on --scan-types (CVE, Misconfigurations, Technologies), --resource-types (for technologies scan type), --modules to pick subtype (like year under CVE or apache under webservers)
  • Keeps up with newly discovered and published CVEs and public exploits without continuous DevX.

Testing

  • Fuzzing functionality was tested against a vulnerable SSTI lab.
  • Scanning functionality was tested against a vulnerable Docker container with Apache OPTIONS bleed vuln.

@apurvagoenka-method apurvagoenka-method changed the title vendoring + repo skeleton Nuclei Debut May 14, 2025
Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@apurvagoenka-method apurvagoenka-method marked this pull request as ready for review May 14, 2025 02:34
Copy link
Copy Markdown
Contributor

@sean-hacker sean-hacker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One question I have here is if this provides 1:1 replacements as written for all the tools that were deleted. I would have preferred that we not delete the old tools and instead just slotted in the nuclei. That would have eased the transition from the existing tools to the new ones.

@apurvagoenka-method
Copy link
Copy Markdown
Contributor Author

@sean-hacker - this PR currently does not replace all functionality, but I planned on adding the outstanding templates before merging. I ripped out the old code to get a distraction free look into the repo skeleton etc - i've added it back now that the nuclei impl is complete.

@apurvagoenka-method apurvagoenka-method force-pushed the apurva/met-5468-nuclei-initial-pr branch 3 times, most recently from e07beb8 to 2de021b Compare May 17, 2025 02:24
Comment on lines +20 to +54
name: Prepare Linux (arm64)
runs-on: ubuntu-22.04-arm
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- name: Generate Fern Go Code
run: |
npm install -g fern-api
fern generate --group local
env:
FERN_TOKEN: ${{ secrets.FERN_TOKEN }}
- uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache: true
- uses: goreleaser/goreleaser-action@v4
with:
distribution: goreleaser-pro
version: latest
args: >-
build --single-target --clean --snapshot --timeout 60m
-f ${{ inputs.goreleaser_config }} ${{ inputs.goreleaser_options }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
GOOS: linux
GOARCH: arm64
- uses: actions/upload-artifact@v4
with:
name: linux-arm64-dist
path: dist/
retention-days: 7

prepare-linux-amd64:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
@sean-hacker
Copy link
Copy Markdown
Contributor

I can no longer approve this since I pushed commits. @payoub125 can approve tomorrow

@apurvagoenka-method apurvagoenka-method merged commit 0cbbc9d into develop May 19, 2025
14 checks passed
@apurvagoenka-method apurvagoenka-method deleted the apurva/met-5468-nuclei-initial-pr branch May 19, 2025 21:14
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants