介绍

Vxscan是用python3写的综合扫描工具,主要用来敏感文件探测(目录扫描与js泄露),WAF/CDN识别,端口扫描,指纹/服务识别,操作系统识别,弱口令探测,POC扫描,SQL注入,绕过CDN,查询旁站等功能。

安装说明

要求Python版本大于3.6:

git clone https://github.com/al0ne/Vxscan 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 verifytimeout = 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()returnconn.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 requestsdef 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:passdef 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 pymysqlvuln = ['mysql', '3306']
user = ['root']
result = ''def mysqlBruteforce(task):global resultaddress, username, password = task.split('|')try:db = pymysql.connect(address, username, password, "mysql")result = 'Mysql User: ' + username + ' Pass: ' + password
except:passdef 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

程序输出


[{"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"}......

项目地址

https://github.com/al0ne/Vxscan

参考说明

参考了cnnetarmy Srchunter设计思路。

参考了brut3k1t的弱口令模块:

https://github.com/ex0dus-0x/brut3k1t

指纹识别主要调用Wappalyzer与WebEye:

https://github.com/b4ubles/python3-Wappalyzer https://github.com/zerokeeper/WebEye

Poc参考了:

BBscan扫描器 https://github.com/lijiejie/BBScan POC-T https://github.com/Xyntax/POC-T/tree/2.0/script Perun https://github.com/WyAtu/Perun

参考了anthx的端口扫描、服务判断:

https://raw.githubusercontent.com/AnthraX1/InsightScan/master/scanner.py

注入爬虫参考了:

DSSS https://github.com/stamparm/DSSS

js敏感信息正则提取参考了:

https://github.com/nsonaniya2010/SubDomainizer

WAF判断使用的是waf00f与whatwaf的判断规则:

https://github.com/EnableSecurity/wafw00f https://github.com/Ekultek/WhatWaf

参考链接 :

Vxscan:一款实用综合扫描工具: https://www.freebuf.com/sectool/205447.html

Vxscan:一款实用综合扫描工具相关推荐

  1. AppScan 是一款web安全扫描工具

    AppScan介绍: AppScan是IBM的一款web安全扫描工具,主要适用于Windows系统.该软件内置强大的扫描引擎,可以测试和评估Web服务和应用程序的风险检查,根据网站入口自动对网页链接进 ...

  2. 纯命令行+美观UI,10款实用开源下载工具

    开源社KAIYUANSHE 近期微信公众号订阅功能做调整啦! 没有被星标的账号在信息流里可能不显示大图了! 快星标⭐我们,就可以及时看到发布的文章啦! STEP01 点击右上角标志 STEP02 点击 ...

  3. 6款实用开源报表工具 | 码云周刊第 83 期

    大数据时代,从海量数据中挖掘出有用的数据,并以较人性化.直观的方式展示这些数据,变得尤为重要.今天小编为大家介绍6款实用的开源报表工具,你可以使用这些工具做出高效,且符合企业需求的报表. 1.项目名称 ...

  4. oracle系统报表开发工具,掌握七款实用报表开发工具,定制属于自己的报表

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  5. 十九款web漏洞扫描工具

    1. Arachni Arachni是一款基于Ruby框架搭建的高性能安全扫描程序,适用于现代Web应用程序.可用于Mac.Windows及Linux系统的可移植二进制文件. Arachni不仅能对基 ...

  6. 5款实用爬虫小工具推荐(云爬虫+采集器)

    目前市面上我们常见的爬虫软件大致可以划分为两大类:云爬虫和采集器(特别说明:自己开发的爬虫工具和爬虫框架除外) 云爬虫就是无需下载安装软件,直接在网页上创建爬虫并在网站服务器运行,享用网站提供的带宽和 ...

  7. 6款实用开源报表工具

    大数据时代,从海量数据中挖掘出有用的数据,并以较人性化.直观的方式展示这些数据,变得尤为重要.今天小编为大家介绍6款实用的开源报表工具,你可以使用这些工具做出高效,且符合企业需求的报表. 项目名称 W ...

  8. 直接拿来用!10款实用Android UI工具

    转载地址:http://blog.csdn.net/bboyfeiyu/article/details/13295233 移动应用的UI设计就好似达摩克利斯之剑,一方面,一个视觉.交互.体验良好的UI ...

  9. 这四款实用的在线工具,关键时刻能帮你大忙!请低调收藏

    Image To Video 一款在线将多张照片制作成带有音效的视频工具,用户无需注册和安装即可在线使用,现在人们都喜欢把自己的以前拍着的照片汇总到一起做一段充满回忆的视频,这款工具可以满足你的需求. ...

最新文章

  1. MySQL基础篇:子查询
  2. FPGA的设计艺术(14)使用函数和任务提升逻辑的可重用性
  3. Vue怎样新建并启动项目(图文教程详解)
  4. mysql数据库入门教程(8):数据的基本类型
  5. 大快网站:如何选择正确的hadoop版本
  6. Delphi TIniFile 用法
  7. pytorch每次迭代训练前都重新对数据集进行采样形成平衡数据集
  8. CPU亲和性(affinity)sched_setaffinity() 和 sched_getaffinity()
  9. NB-IoT(9)---云平台对接及使用
  10. Android SDK的安装教程
  11. 北京理工大学c语言课后答案,《北京理工大学C语言教材习题答案》.doc
  12. 访谈 | 币圈量化群英会——寻找适合你的量化基金!
  13. acer switch 10 linux,【AcerSwitch10E评测】拆开来用的电脑 Acer Switch 10E评测(全文)_Acer Switch 10E_笔记本评测-中关村在线...
  14. 【20CSPS提高组】动物园
  15. jdk8 list 反转_三相异步电动机正反转故障排除在实训教学中的应用
  16. docker(十)—— Windows系统下安装docker
  17. python匿名函数调用_(Python) 函数、匿名函数
  18. Layer Tree 绘制
  19. Pintos project2 实验报告
  20. WebSphere 8.5.5 静默安装及升级补丁

热门文章

  1. 【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类...
  2. 随机森林算法入门(python)
  3. php 序列化匿名函数,在php中序列化匿名函数
  4. 无悔入华夏怎么一直显示服务器,无悔入华夏祭祀玩法怎么玩 无悔入华夏祭祀怎么触发?...
  5. 设计模式原则之五:里氏置换原则
  6. IT人不要一辈子靠技术生存
  7. Windows 8 Directx 开发学习笔记(八)要有光
  8. Qt实现Areo效果
  9. js 数组 改变长度_使用JS实现链表(1)——单链表
  10. 阿里云数据库HybridDB for PostgreSQL使用教程