首页 > 其他分享 >Vxscan:一款实用综合扫描工具

Vxscan:一款实用综合扫描工具

时间:2024-10-15 14:48:31浏览次数:3  
标签:title url 端口 py 扫描 rsp 一款 Vxscan

安装说明

要求Python版本大于3.6:


git clone GitHub - al0ne/Vxscan: python3写的综合扫描工具,主要用来存活验证,敏感文件探测(目录扫描/js泄露接口/html注释泄露),WAF/CDN识别,端口扫描,指纹/服务识别,操作系统识别,POC扫描,SQL注入,绕过CDN,查询旁站等功能,主要用来甲方自测或乙方授权测试,请勿用来搞破坏。 

cd Vxscan 

apt install libpq-dev nmap 

wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz 

解压后将里面的GeoLite2-City.mmdb放到vxscan/db/GeoLite2-City.mmdb。

pip3 install -r requirements.txt

主要功能

使用多线程扫描目录;

使用笛卡尔乘积方式生成字典列表,支持自定义字典列表;

随机的UserAgent、XFF、X-Real-IP;

存活探测,对扫描目标先通过socket.gethostbyname判断解析在通过ping判断存活;

自定义404页面识别,访问随机页面然后通过difflib对比相似度,识别自定义302跳转;

扫描目录时先探测http端口,将一个主机多个http端口加入到扫描目标中;

过滤无效Content-Type,无效状态吗;

WAF/CDN探测,集成100+常见WAF与CDN指纹;

使用socket发包探测常见端口,发送不同payload探测端口服务指纹;

遇到全端口开放的主机(portspoof)自动跳过;

调用wappalyzer.json与WebEye判断网站指纹,集成1200+常见指纹;

检测到CDN或者WAF网站自动跳过;

调用nmap识别操作系统指纹;

根据端口开放调用弱口令探测脚本(FTP/SSH/TELNET/Mysql/MSSQL...);

根据指纹识别或者端口调用POC扫描,或将IP开放的WEB端口上打一遍;

分析js文件里面的敏感资产信息(域名、邮箱、apikey、password等);

抓取网站连接,测试SQL注入,LFI等;

调用一些在线接口获取信息,通过VT pdns判断真实IP,通过www.yougetsignal.com、api.hackertarget.co查询网站旁站。

使用方式

python3 Vxscan.py -h

optional arguments:
  -h, --help            show this help message and exit  
  -u URL, --url URL     Start scanning this url -u xxx.com  
  -i INET, --inet INET  cidr eg. 1.1.1.1 or 1.1.1.0/24  
  -f FILE, --file FILE  read the url from the file  
  -t THREADS, --threads THREADS  
                        Set scan thread, default 150  
  -e EXT, --ext EXT     Set scan suffix, -e php,asp  
  -w WORD, --word WORD  Read the dict from the file

1.扫描一个网站

python3 vxscan.py -u http://www.xxx.com/ 

2.从文件列表里扫描网站

python3 vxscan.py -f hosts.txt 

3.扫描一个C段

python3 vxscan.py -i 127.0.0.0/24 

4.设置线程100,组合只用php后缀,使用自定义字典

python3 vxscan.py -u http://www.xxx.com -e php -t 100 -w ../dict.txt 

目录结构

/
├─Vxscan.py  主文件
├─db
│  ├─apps.json  Web指纹信息
│  ├─apps.txt  Web指纹信息(WEBEYE)
│  ├─password.txt  密码字典
├─report    报告目录
├─lib       
│  ├─common.py    判断CDN、端口扫描、POC扫描等
│  ├─color.py   终端颜色输出
│  ├─active.py   判断dns解析与ping ip存活
│  ├─save_html.py     生成html报表
│  ├─crack.py     测试弱密码
│  ├─waf.py     waf规则
│  ├─osdetect.py   操作系统版本识别
│  ├─random_header.py   自定义header头
│  ├─scan_port.py        端口扫描脚本
│  ├─jsparse.py      抓取网站js连接,分析ip地址,链接,Email等
│  ├─settings.py      设置脚本
│  ├─pyh.py     生成html
│  ├─wappalyzer.py    指纹识别脚本
│  ├─SQLi.py    抓取网站连接,测试SQL注入脚本
├─script  
│  ├─Poc.py         Poc脚本
│  ├─......
├─requirements.txt
├─logo.jpg
├─error.log

配置文件

修改lib/settings.py

# 全局超时时间
TIMEOUT = 5
# 要排除的状态吗
BLOCK_CODE = [
    301, 403, 308, 404, 405, 406, 408, 411, 417, 429, 493, 502, 503, 504, 999
]
# 设置扫描线程
THREADS = 100
# 要排除的 内容类型
BLOCK_CONTYPE = [
    'image/jpeg', 'image/gif', 'image/png', 'application/javascript',
    'application/x-javascript', 'text/css', 'application/x-shockwave-flash',
    'text/javascript', 'image/x-icon'
]

# 是否跳过目录扫描
SKIP = True

# 保存的文件名
html_name = time.strftime("%Y%m%d%H%M%S", time.localtime())

# shodan
shodan_api = ''

# VT接口
virustotal_api = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'

# 添加Cookie
COOKIE = {'Cookie': 'Vxscan 1.0'}

# 设置密码
PASS = ['password']

POC编写

案例1 根据端口开放或者指纹识别结果来调用POC

在script目录下新建python文件,定义好check函数,传进来的参数主要是ip地址、端口列表、指纹识别列表,然后将结果return回去:

import pymongo
from lib.verify import verify

timeout = 2
vuln = ['27017', 'Mongodb']

def check(ip, ports, apps):
    # verify用来验证扫描列表中是否有Mongodb相关的结果,如果端口没有开启则不进行扫描
    if verify(vuln, ports, apps):
        try:
            conn = pymongo.MongoClient(host=ip, port=27017, serverSelectionTimeoutMS=timeout)
            database_list = conn.list_database_names()
            if not database_list:
                conn.close()
                return
            conn.close()
            return '27017 MongoDB Unauthorized Access'
        except Exception as e:
            pass

案例2 在目标IP开放的每个HTTP端口上遍历一遍

根据传递过来的端口服务列表生成要扫描的url,然后在每个web端口中去访问一遍,下面脚本会获取ip每个http端口的标题:

from lib.verify import Probe
from lib.random_header import HEADERS
from lxml import etree
import requests

def get_title(url):
    try:
        r = requests.get(url, headers=HEADERS, timeout=3, verify=False)
        html = etree.HTML(r.text)
        title = html.xpath('//title/text()')
        return url + ' | ' + title[0]
    except:
        pass


def check(ip, ports, apps):
    result = []
    probe = Probe(ip, ports)
    for i in probe:
        out = get_title(i)
        if out:
            result.append(out)
    return result

案例3 根据端口开放调用弱口令探测:

from lib.verify import verify, GetHosts
import concurrent.futures
import pymysql

vuln = ['mysql', '3306']
user = ['root']
result = ''


def mysqlBruteforce(task):
    global result
    address, username, password = task.split('|')
    try:
        db = pymysql.connect(address, username, password, "mysql")
        result = 'Mysql User: ' + username + ' Pass: ' + password
except:
        pass


def check(ip, ports, apps):
    global result
if verify(vuln, ports, apps):
        # GetHosts会根据ip和用户名还有lib/settings.py里设置的密码生成一个要爆破的列表, 
        hosts = GetHosts(ip, user)
        with concurrent.futures.ThreadPoolExecutor(max_workers=40) as executor:
            executor.map(mysqlBruteforce, hosts)
    return result

程序输出

logo.jpg

logo2.jpg

[
    {
        "testphp.vulnweb.com": {
            "WAF": "NoWAF",
            "Webinfo": {
                "apps": [
                    "PHP",
                    "Nginx",
                    "DreamWeaver",
                    "php"
                ],
                "title": "Home of Acunetix Art",
                "server": "nginx/1.4.1"
            },
            "Ports": [
                "ftp:21",
                "http:80",
                "ssh:22",
                "http:8443"
            ],
            "Vuln": [
                "MySQL SQLi:http://testphp.vulnweb.com/search.php?test=query",
                "MySQL SQLi:http://testphp.vulnweb.com/listproducts.php?cat=2",
                "MySQL SQLi:http://testphp.vulnweb.com/artists.php?artist=2"
            ],
            "URLS": [
                {
                    "rsp_code": 200,
                    "rsp_len": 3864,
                    "title": "search",
                    "contype": "html",
                    "url": "/search.php"
                },
                {
                    "rsp_code": 200,
                    "rsp_len": 4671,
                    "title": "login page",
                    "contype": "html",
                    "url": "/login.php"
                },
                {
                    "rsp_code": 200,
                    "rsp_len": 143,
                    "title": "None",
                    "contype": "xml",
                    "url": "/.idea/scopes/scope_settings.xml"
                },
                {
                    "rsp_code": 200,
                    "rsp_len": 1,
                    "title": "None",
                    "contype": "plain",
                    "url": "/CVS/Root"
                },
                {
                    "rsp_code": 200,
                    "rsp_len": 224,
                    "title": "None",
                    "contype": "xml",
                    "url": "/crossdomain.xml"
                },
                {
                    "rsp_code": 200,
                    "rsp_len": 3265,
                    "title": "Home of WASP Art",
                    "contype": "zip",
                    "url": "/index.zip"
                }
                ......

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门

① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

 因篇幅有限,仅展示部分资料

2️⃣视频配套资料&国内外网安书籍、文档

① 文档和书籍资料

② 黑客技术

因篇幅有限,仅展示部分资料

4️⃣网络安全面试题

5️⃣汇总

所有资料 ⚡️ ,朋友们如果有需要全套 《网络安全入门+进阶学习资源包》,扫码获取~

标签:title,url,端口,py,扫描,rsp,一款,Vxscan
From: https://blog.csdn.net/baimaozi008/article/details/142953953

相关文章

  • Dirmap:一款高级Web目录文件扫描工具
    需求分析何为一个优秀的web目录扫描工具?经过大量调研,总结一个优秀的web目录扫描工具至少具备以下功能:并发引擎能使用字典能纯爆破能爬取页面动态生成字典能fuzz扫描自定义请求自定义响应结果处理...功能特点你爱的样子,我都有,小鸽鸽了解下我吧:支持n个target*n个p......
  • 一款由AI编写,简洁而实用的开源IP信息查看器
    大家好,今天给大家分享一款用于查询和显示用户当前IP地址的轻量级项目MyIP。MyIP提供了多种功能,包括IP地址查询、网络连通性检查、WebRTC连接检测、DNS泄露检查、网速测试、MTR测试等等。使用MyIP,我们可以轻松地查看自己的公网IP地址,并且可以方便地进行网络诊断或监控。项......
  • Wx64ST:一款轻松可修改的C语言Shellcode模板
    原创Alpha_h4ckFreeBuf关于windows_x64_shellcode_templatewindows_x64_shellcode_template简称为Wx64ST,它是一款功能强大的Shellcode模板,该模板基于C语言编写,其简单、可扩展和易于修改等特性可以帮助广大安全研究人员轻松开发适用于Windowsx64的Shellcode。值得一提的是,......
  • ImTip:又一款小巧的输入法状态提示工具
    ​ImTip是一款小巧的Windows工具,用来在有输入光标的地方,显示输入法状态。官网:https://imtip.aardio.com‍介绍一款显示输入法状态的工具。特点:仅660KBCPU占用极低开源在:https://github.com/aardio/ImTip,目前已经有1.5k的star单文件绿色软件,无任何外部依赖兼容......
  • #STM32#定时器扫描按键消抖#按键控制LED灯亮灭#标准库
    一.机械按键抖动在按下按键后金属弹片会来回震动影响I/O口的电平变化,影响检测和判断操作。通常抖动时间为:5ms~10ms影响:在不加消除抖动的情况下按下按键LED灯可能会出现失灵的情况,因为这时的判断按键情况通常是判断电平的高低,由于电平不停的发转,所以呀很难判断此时是否是被......
  • dirxk轻量目录扫描器
    公司找个一个外包团队给客户写了一套系统,存在一些敏感信息泄露漏洞,这些漏洞不定期被主管部门检测到,从而需要进行整改操作项目经理求助于公司内部的安全团队,希望能够检测系统还存在哪些敏感信息泄露漏洞,至此形成了本文中的一个主因在实际的检测过程中,发现御剑、DIRB、Gobuster工......
  • 推荐一款支持Vue3的管理系统模版:Vue-Vben-Admin
    近年来,随着前端技术的飞速发展,各类后台管理系统框架层出不穷。Vue作为热门的前端框架,也有许多优秀的后台模板涌现。而Vue-Vben-Admin,凭借其高效、灵活的架构设计和完善的功能体系,成为了许多前端开发者的不二选择。其GithubStar达到了24K之多,可见其受欢迎程度。本文将详细介绍V......
  • 星云ERP 1.2k star,一款完全开源的进销存ERP系统,附下载链接
    项目介绍本系统是基于SpringBoot框架,为中小企业提供完全开源、用户体验好的进销存ERP系统,解决开店难、管理难、数据统计难的问题。系统下载链接下载链接:  星云ERP下载主要技术框架Springboot2.2.2.RELEASEMyBatis-plus3.4.2Spring-session-data-redis2.2.0.R......
  • 1.7k star,一款网页版的跨平台远程控制和监控神器,附下载链接。
    今天给大家介绍一个免费、安全、开源、基于网页、跨平台且功能丰富的远程管理工具,可以通过浏览器,随时随地管理设备。工具下载链接下载链接:工具下载介绍Spark是一个Go编写的,网页UI、跨平台以及多功能的远程控制和监控工具,你可以随时随地监控和控制所有设备。亮点:本......
  • 23k star,推荐一款超强的开源工具--trivy
    今天一件一款开源的镜像扫描工具,下面是扫描某个python镜像的示例:Trivy:全面的安全扫描工具软件简介Trivy是由AquaSecurity开发的开源安全扫描工具,旨在帮助开发者和运维人员识别和修复各种环境中的安全问题。Trivy的名字来源于“Trigger”和“Envy”的组合,寓意其强大的......