Top Related Projects
Fast and customizable vulnerability scanner based on simple YAML based DSL.
A wrapper around grep, to help you grep for things
The Swiss Army knife for automated Web Application Testing
Fast web fuzzer written in Go
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:
- 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.
- Vulnerability Scanning:
silver scan -v -t https://example.com
This command performs a vulnerability scan on the website https://example.com
.
- Web Application Testing:
silver scan -w -t https://example.com
This command performs a web application test on the website https://example.com
.
- 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:
-
Install Silver: You can download the latest version of Silver from the project's GitHub repository: https://github.com/s0md3v/Silver/releases.
-
Extract the Archive: Depending on your operating system, extract the downloaded archive to a location of your choice.
-
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.
-
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.
-
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. -
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
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
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.
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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.
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
Top Related Projects
Fast and customizable vulnerability scanner based on simple YAML based DSL.
A wrapper around grep, to help you grep for things
The Swiss Army knife for automated Web Application Testing
Fast web fuzzer written in Go
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
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot