Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
ZEROScan — Multi-Thread Vulnerability Verify Framework | Kitploit
Tools/GitHubGitHub/zer0yu/zeroscan
Vulnerability ScannersExploit FrameworksWeb SecurityPenetration Testing
GitHubzer0yu/zeroscan

ZEROScan

Multi-Thread Vulnerability Verify Framework

View Repository
55177 years agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

ZEROScan

Python 2.7 License

Introduction

ZEROScan is a multi-threaded vulnerability detection framework. Through it, you can easily obtain or develop vulnerability detection plugins to perform penetration testing on targets. The interface and usage are inspired by the metasploit-framework, making it easy to get started and develop plugins.

Features

  • Supports multi-threaded concurrent mode
  • Minimalist script writing, no reference documentation needed
  • Supports Linux, Windows, Mac OSX, BSD

Installation

root@kitploit:~
$ git clone https://github.com/zer0yu/ZEROScan.git

Or you can download the latest zip source package and extract it for installation:

root@kitploit:~
$ wget https://codeload.github.com/zer0yu/ZEROScan/zip/master
$ unzip ZEROScan-master.zip

Usage

root@kitploit:~
➜  ZEROScan git:(master) ✗ python z-console.py

  ____________ _____   ____   _____
 |___  /  ____|  __ \ / __ \ / ____|
    / /| |__  | |__) | |  | | (___   ___ __ _ _ __
   / / |  __| |  _  /| |  | |\___ \ / __/ _` | '_ \
  / /__| |____| | \ \| |__| |____) | (_| (_| | | | |
 /_____|______|_|  \_\\____/|_____/ \___\__,_|_| |_|

+ -- --=[ ZEROScan - 1.0 ]
# Execute the help command to view the description of each parameter.
ZEROScan > help

Core Commands
=============

Command                       Description
-------                       -----------
run                           Run current plugin
help                          Help menu
use <plugin>                  Select a plugin by name
update                        Update the framework
search <keyword>              Search plugin names and descriptions
set <option> <value>          Set a variable to a value
info <plugin>                 Display information about one plugin
list                          List all plugins
version                       Show the framework version numbers
exit                          Exit the console
options                       Display options for current plugin
# Use the list command to display all current plugins
ZEROScan > list
\Modules
=======

expName    appName      appVersion  description
---------  ---------  ------------  -----------------------------
demo       PHP                1230  PH1424/down.php SQL Injection
# Use the info command to view details of the corresponding plugin
ZEROScan > info demo

appName: PHP
appVersion: 1230
Author:
	123

Description:
	PH1424/down.php SQL Injection

Reference:
	http://124.xyz/
# Use the use command to specify the plugin to call
ZEROScan > use demo
# Use the options command to view the corresponding settings for this plugin
ZEROScan exploit(demo) > options
# Batch scan files should be placed in the target directory
# For batch scanning, set the url parameter directly to the filename (no .txt extension needed)
Name    Current Setting      Required  Description
------  -----------------  ----------  --------------------------
URL                                 1  URL or URL file
Thread  1                           0  Threads
Cookie                              0  Cookie
Report  False                       0  do you need a html report?
# Use the set command to configure
ZEROScan exploit(demo) > set URL ww.baidu.com
URL => ww.baidu.com
# Use the run command to execute the corresponding plugin
ZEROScan exploit(demo) > run
[!]exploit target:'ww.baidu.com'
[!]Requesting target site:ww.baidu.com
+--------------+------------+-------------+
| target-url   | poc-name   | status      |
+==============+============+=============+
| ww.baidu.com | demo       | test_plugin |
+--------------+------------+-------------+
success : 1
# The final results will be saved in a txt file under the output directory
ZEROScan exploit(demo) >

Plugin Development

root@kitploit:~
#!/usr/bin/env python
# -*- coding:utf-8 -*-

import re
from lib.core import log
# You can import the requests library from thirdparty
#from thirdparty import requests

# expInfo() is a required function; fill in the following information here
def expInfo():
    expInfo={}
    expInfo["appName"] = "PHP"
    expInfo["appVersion"] = "123"
    expInfo["author"] = "Z3r0yu"
    expInfo["description"] = "PHPxxx/down.php SQL Injection"
    expInfo["references"] = "http://zeroyu.xyz/"

    expInfo["options"] = [
        {
            "Name": "URL",
            "Current Setting": "",
            "Required": True,
            "Description": "URL or URL file"
        },
        {
            "Name": "Thread",
            "Current Setting": "1",
            "Required": False,
            "Description": "Threads"
        },
        {
            "Name": "Cookie",
            "Current Setting": "",
            "Required": False,
            "Description": "cookie"
        },
        {
            "Name": "Report",
            "Current Setting": "",
            "Required": False,
            "Description": "do you need a html report?"
        },
    ]
    return expInfo

# You can freely define the functions you need in the plugin
def yourDefinition():

    return "test_plugin"
# exploit(target, headers=None) is the execution function, it is required, and needs two parameters
# The target parameter is used to specify the target, headers can be used to implement random UA
def exploit(target, headers=None):
    log.process("Requesting target site:"+ target)
# Return the information you want
# However, the framework will consider a scan with a return value as successful and display it
    return yourDefinition()

Changelog

  • v1.0.0
    • Optimized the overall structure
  • v0.0.1
    • Initial release

Contact Author

  • mail:[email protected]

Disclaimer

This software is intended for learning and communication purposes only. Do not use it for illegal activities. The author is not responsible for any consequences arising from misuse.

Download Tool