Convert Figma logo to code with AI

s0md3v logoSilver

Mass scan IPs for vulnerable services

1,024
148
1,024
2

Top Related Projects

19,837

Fast and customizable vulnerability scanner based on simple YAML based DSL.

1,768

A wrapper around grep, to help you grep for things

2,138

The Swiss Army knife for automated Web Application Testing

12,220

Fast web fuzzer written in Go

56,766

SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.

Directory/File, DNS and VHost busting tool written in Go

Quick Overview

s0md3v/Silver is a command-line tool that allows users to perform various security-related tasks, such as port scanning, vulnerability scanning, and web application testing. It is designed to be a comprehensive and user-friendly tool for security professionals and researchers.

Pros

  • Comprehensive Functionality: Silver provides a wide range of security-related tools and features, allowing users to perform various tasks from a single interface.
  • User-Friendly Interface: The command-line interface is intuitive and easy to use, making it accessible to both experienced and novice users.
  • Actively Maintained: The project is actively maintained, with regular updates and bug fixes.
  • Cross-Platform Compatibility: Silver can be used on multiple operating systems, including Windows, macOS, and Linux.

Cons

  • Limited Documentation: The project's documentation could be more comprehensive, which may make it challenging for new users to get started.
  • Potential Security Risks: As a security tool, Silver may be used for malicious purposes, and users should exercise caution when using it.
  • Performance Concerns: Depending on the task being performed, Silver may have performance limitations, especially when dealing with large-scale scans or complex web applications.
  • Dependency on External Tools: Silver relies on several external tools and libraries, which may require additional setup and configuration.

Code Examples

Silver is a command-line tool, and it does not provide a code library for direct integration into other projects. However, you can use Silver's various commands to perform specific security-related tasks. Here are a few examples:

  1. Port Scanning:
silver scan -p 80,443 -t 192.168.1.1

This command performs a port scan on the IP address 192.168.1.1 for ports 80 and 443.

  1. Vulnerability Scanning:
silver scan -v -t https://example.com

This command performs a vulnerability scan on the website https://example.com.

  1. Web Application Testing:
silver scan -w -t https://example.com

This command performs a web application test on the website https://example.com.

  1. Information Gathering:
silver gather -t https://example.com

This command gathers information about the website https://example.com, such as technologies used, subdomains, and other relevant details.

Getting Started

To get started with Silver, follow these steps:

  1. Install Silver: You can download the latest version of Silver from the project's GitHub repository: https://github.com/s0md3v/Silver/releases.

  2. Extract the Archive: Depending on your operating system, extract the downloaded archive to a location of your choice.

  3. Add Silver to Your System Path: To use Silver from anywhere in your terminal, add the directory containing the Silver executable to your system's PATH environment variable.

  4. Explore Silver's Commands: Silver provides a variety of commands for different security-related tasks. You can explore the available commands by running the following command:

silver --help

This will display a list of all the available commands and their descriptions.

  1. Customize Silver's Configuration: Silver allows you to customize its behavior by editing the configuration file located at ~/.config/silver/config.json. You can adjust settings such as the default target, scan options, and more.

  2. Use Silver for Your Security Tasks: Depending on your needs, you can use Silver to perform various security-related tasks, such as port scanning, vulnerability scanning, web application testing, and information gathering.

Remember to use Silver responsibly and only on systems and networks you have permission to test.

Competitor Comparisons

19,837

Fast and customizable vulnerability scanner based on simple YAML based DSL.

Pros of Nuclei

  • Extensive template library with community contributions
  • Supports multiple protocols (HTTP, DNS, TCP, etc.)
  • Highly customizable and extensible

Cons of Nuclei

  • Steeper learning curve for creating custom templates
  • Potentially slower execution due to its comprehensive nature

Code Comparison

Silver:

def scan(url):
    response = requests.get(url)
    if "vulnerability" in response.text:
        print("Vulnerability found!")

Nuclei:

id: example-vuln
info:
  name: Example Vulnerability
  severity: high
requests:
  - method: GET
    path:
      - "{{BaseURL}}"
    matchers:
      - type: word
        words:
          - "vulnerability"

Key Differences

  • Silver is focused on XSS detection, while Nuclei is a general-purpose vulnerability scanner
  • Silver uses Python for scripting, whereas Nuclei employs YAML-based templates
  • Nuclei offers more advanced features like multi-step workflows and dynamic variables

Use Cases

  • Silver: Quick and lightweight XSS scanning
  • Nuclei: Comprehensive vulnerability assessment across multiple protocols and scenarios

Community and Support

  • Silver: Smaller community, primarily maintained by the creator
  • Nuclei: Large and active community with frequent updates and contributions
1,768

A wrapper around grep, to help you grep for things

Pros of gf

  • Lightweight and fast, focusing on pattern matching in files
  • Easily extendable with custom patterns using simple JSON files
  • Integrates well with other command-line tools in Unix-like environments

Cons of gf

  • Limited to pattern matching, lacking advanced features for web vulnerability scanning
  • Requires manual interpretation of results, potentially missing complex vulnerabilities
  • Less user-friendly for beginners compared to Silver's GUI-based approach

Code Comparison

Silver (Python):

def scan_url(url):
    response = requests.get(url)
    for vuln in VULNERABILITIES:
        if vuln.pattern in response.text:
            print(f"Potential {vuln.name} found at {url}")

gf (Go):

func processFile(filename string, patterns []pattern) {
    content, _ := ioutil.ReadFile(filename)
    for _, p := range patterns {
        if p.regex.Match(content) {
            fmt.Printf("%s: %s\n", filename, p.name)
        }
    }
}

Summary

Silver is a comprehensive web vulnerability scanner with a GUI, offering automated detection of various vulnerabilities. gf, on the other hand, is a lightweight command-line tool for pattern matching in files, primarily used for quick searches during security assessments. While Silver provides a more user-friendly experience for beginners and automates vulnerability detection, gf offers flexibility and speed for experienced users who prefer command-line tools and custom pattern matching.

2,138

The Swiss Army knife for automated Web Application Testing

Pros of Jaeles

  • More comprehensive and feature-rich security testing framework
  • Supports multiple protocols and customizable scanning templates
  • Active development and community support

Cons of Jaeles

  • Steeper learning curve due to more complex configuration
  • Requires more system resources for full functionality

Code Comparison

Silver:

def scan(url, payload):
    response = requests.get(url + payload)
    if "error" in response.text.lower():
        print(f"Potential vulnerability found: {url}")

Jaeles:

id: sql-injection
info:
  name: SQL Injection Detection
  risk: High

requests:
  - method: GET
    path: "{{.BaseURL}}/?id={{.payload}}"
    payloads:
      payload: "1' OR '1'='1"
    detections:
      - condition: response.body_contains("error in your SQL syntax")
        output: "Potential SQL Injection found"

Summary

Jaeles offers a more robust and flexible security testing framework compared to Silver, with support for multiple protocols and customizable scanning templates. However, this comes at the cost of increased complexity and resource requirements. Silver, on the other hand, provides a simpler and more lightweight approach to vulnerability scanning, making it easier to use for basic testing scenarios but potentially less comprehensive in its coverage.

12,220

Fast web fuzzer written in Go

Pros of ffuf

  • Written in Go, offering better performance and cross-platform compatibility
  • More extensive feature set, including recursive scanning and custom output formats
  • Larger community and more frequent updates

Cons of ffuf

  • Steeper learning curve due to more complex command-line options
  • Lacks some of the user-friendly features found in Silver, such as automatic parameter detection

Code Comparison

Silver:

def fuzz(url, wordlist, threads=10):
    with open(wordlist) as file:
        words = file.read().splitlines()
    with concurrent.futures.ThreadPoolExecutor(max_workers=threads) as executor:
        executor.map(lambda word: make_request(url, word), words)

ffuf:

func Fuzz(job *Job) {
    for _, v := range job.Config.InputProviders {
        v.Keyword()
        for _, w := range v.Value {
            job.Input.Add(v.Name, w)
        }
    }
    RunFuzzer(job)
}

Both tools aim to perform fuzzing tasks, but their implementations differ significantly. Silver uses Python's concurrent.futures for threading, while ffuf leverages Go's concurrency model. ffuf's code structure suggests a more modular and extensible approach, allowing for various input providers and custom configurations.

56,766

SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.

Pros of SecLists

  • Comprehensive collection of multiple types of lists for security testing
  • Regularly updated with community contributions
  • Well-organized directory structure for easy navigation

Cons of SecLists

  • Large repository size may be overwhelming for some users
  • Requires manual searching and filtering for specific use cases
  • Not focused on a single specific security testing area

Code Comparison

SecLists (example from a wordlist):

123456
password
12345678
qwerty
123456789
12345
1234
111111

Silver (example of a generated payload):

payload = "' UNION SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- -"

Summary

SecLists is a comprehensive collection of various security-related lists, while Silver is a focused tool for generating SQL injection payloads. SecLists offers a wide range of resources but requires more manual effort to use effectively. Silver provides automated payload generation for a specific type of attack but has a narrower scope. The choice between them depends on the user's specific needs and the breadth of security testing required.

Directory/File, DNS and VHost busting tool written in Go

Pros of gobuster

  • Written in Go, offering better performance and cross-platform compatibility
  • More extensive directory and file brute-forcing capabilities
  • Supports multiple wordlists and custom formatting options

Cons of gobuster

  • Larger codebase, potentially more complex to maintain
  • Focused primarily on web content discovery, less versatile for general recon

Code Comparison

gobuster (main.go):

func main() {
    globalopts, pluginopts := parseOpts()
    plugin, err := gobusterdir.NewGobusterDir(globalopts, pluginopts)
    if err != nil {
        fmt.Fprintf(os.Stderr, "%s\n", err)
        os.Exit(1)
    }
    if err := cli.Gobuster(mainContext, globalopts, plugin); err != nil {
        fmt.Fprintf(os.Stderr, "%s\n", err)
        os.Exit(1)
    }
}

Silver (silver.py):

def main():
    args = parse_args()
    init(args)
    for target in args.target:
        process(target, args)
    if args.output:
        save_output(args.output)

The code comparison shows that gobuster uses a plugin-based architecture with more complex error handling, while Silver has a simpler structure with straightforward function calls. gobuster's approach allows for more extensibility, but Silver's design may be easier to understand and modify for beginners.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README


Silver
Silver

Mass Vulnerability Scanner

Introduction

masscan is fast, nmap can fingerprint software and vulners is a huge vulnerability database. Silver is a front-end that allows complete utilization of these programs by parsing data, spawning parallel processes, caching vulnerability data for faster scanning over time and much more.

demo

Features

  • Resumable scanning
  • Slack notifcations
  • Multi-core utilization
  • Supports: IPs, CIDR & hostnames
  • Vulnerability data caching
  • Shodan integration

Dependencies

External Programs

Python libraries

  • psutil
  • requests

Required Python libraries can be installed by executing sudo pip3 install -r requirements.txt in Silver directory.

Setting up Slack notifications

  • Create a workspace on slack, here
  • Create an app, here
  • Enable WebHooks from the app and copy the URL from there to Silver's /core/memory.py file.

Usage

Before you start

:warning: Run Silver as root and with python3 i.e. with sudo python3 silver.py <your input>. The python libraries need to be installed as root too.

:warning: Silver scans all TCP ports by default i.e. ports 0-65535. Use --quick switch to only scan top ~1000 ports.

Scan host(s) from command line

python3 silver.py 127.0.0.1
python3 silver.py 127.0.0.1/22
python3 silver.py 127.0.0.1,127.0.0.2,127.0.0.3

Use Shodan

Shodan can provide open ports, service information and CVEs from the data collected during its contiunous internet wide scanning. I think this is the best choice for quickly checking top ~1500 ports. Not using it makes sense when:

  • You want to scan all the ports instead of the most common ones
  • You are not okay with the scan results being 2-3 days old
  • The IP you want to scan has been excluded by Shodan by a request of the owner
python3 silver.py 127.0.0.1 --shodan

Scan top ~1000 ports

python3 silver.py 127.0.0.1 --quick

Scan specific ports

python3 silver.py 127.0.0.1 -p80,443

Scan hosts from a file

python3 silver.py -i /path/to/targets.txt

Save JSON output to a file

Default: result-<ip_here>.json

python3 silver.py 127.0.0.1 -o my_target.json

Note: The output is saved regardless of using this option. It only exists to choose a specific name for the file instead of the autogenerated one.

Set max number of parallel nmap instances

Default: number_of_cores

python3 silver.py -i /path/to/targets.txt -t 4

Choose packets to be sent per seconds

Default: 10000

python3 silver.py 127.0.0.1 --rate 1000

Contribution

You can contribute to this project by providing suggestions, reporting sensible issues and spreading the word. Pull requessts for the following will not be accepted:

  • Typos
  • coDe qUaLiTY
  • Docker and .gitignore file