T-Jinhao / Scanner

简易的web扫描器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

扫描器

功能

  • 网页分析 -S
  • 目录爆破 -B
  • 端口扫描 -P
  • SQL注入检测 -I
  • 存活主机探测 -H
  • 子域名挖掘 -D
  • 弱口令检测 -L
  • 交互式页面-i
  • 待开发

想法

整合主流的扫描器,用一个脚本对网站展开一站式简易扫描。

有大佬留言可以用redis+celery进行分布式的开发,目前正在研究中。

初步重构并去除冗余代码,希望耦合度能更高方便日后增加新功能。

详细的想法请访问:金浩的个人博客

运行环境

python3

pip3 install -r requirements.txt

redis
环境需自行搭建,配置信息请在config.ini中正确填写,无redis亦可正常运行,但部分功能不完整

postgresql
环境需自行搭建,配置信息请在config.ini中正确填写,并修改其中save=true,另database需自行创建

结构

文件夹 用途
dict 预存payload字典
interactive 交互式功能模块
lib 具体功能模块
model 数据库模型
modules 底层工具类
reports 保存输出结果
main.py 入口启动文件
config.ini 配置文件

config.ini参数

各数值已调配至合适的范围,可根据实际情况进行修改
section名称对应模块名称
threads/max_workers对应该模块的网络请求线程数量,数值越大执行速度越快,但要考虑网站的承受能力
timeout对应该模块的请求超时等待时间,在网络条件不好的情况下适当增大数值可获取更准备的结果
recursion对应脚本最大递归深度

Scan模块下的参数
ICPUrl对应站长之家的ICP查询接口
checkWebStatus开启时将请求扫描得到的url以检测其存活性,帮助分析
checkJsStatus开启时将分析页面的JS文件

Domain模块下的参数
domain2IP统计子域名对应IP的分布情况
showIP是否展示IP分布情况,开关与否均会保存结果至文件

主要用法

普通模式

获取帮助:
python3 main.py -h

扫描页面:

python3 main.py -u target_url -S    # 页面信息捕获
python3 main.py -u target_url -SX   # 递归扫描,默认深度:3

目录爆破:

python3 main.py -u target_url -B    # 内置字典爆破
python3 main.py -u target_url -bF payload_file -B   # 自定义字典爆破 
python3 main.py -u target_url -BX   # 全字典爆破

域名爆破:

python3 main.py -u target_url -D    # 内置字典爆破
python3 main.py -u target_url -dF payload_file -D    # 自定义字典爆破
python3 main.py -u target_url -DX   # 在线DNS记录查询

端口扫描:

python3 main.py -u target_url -P    # 常用端口扫描
python3 main.py -u target_url -PX   # 自定义端口扫描

交互式模式

启动:

python3 main.py -i
python3 main.py --interactive

基本信息:
每个页面下均可使用help获取帮助。
参数可通过快速键入两次tab获取补全或提示。
任意页面输入exit可直接退出运行。

使用模块:
每个页面下均可使用usemodule切换至特定功能模块。
Ps:可快速键入tab获取指令补全,及模块选项。

查看参数:
每个页面下均可使用info查看参数,确保每个标识Required:True的参数必须填写合理值。

设置参数:
通过info查看参数,再使用set param valueparam设置value

运行模块:
设置好参数后,使用run将启动运行,若必备参数没有提供,将不会运行并发出提示。

声明

  • 本扫描器不可用作一切非法用途。

About

简易的web扫描器


Languages

Language:Python 98.2%Language:C 0.7%Language:Shell 0.6%Language:HTML 0.3%Language:Perl 0.1%Language:C++ 0.1%Language:PLpgSQL 0.0%Language:TSQL 0.0%